का उपयोग करते समय दो बार लॉग इन करें मैं डीबी सिंक को संभालने के लिए SyncAdapter
का उपयोग कर एक नया एंड्रॉइड ऐप बना रहा हूं। मेरे पास सब कुछ है और ऐप ठीक काम कर रहा है लेकिन मैंने देखा कि मैं दो बार लॉग इन हूं।SyncAdapters
पहला लॉगिन तब होता है जब AuthenticatorActivity
कक्षा (यह AccountAuthenticatorActivity
तक फैली हुई है) उपयोगकर्ता और पासवर्ड को मान्य करती है।
उपयोगकर्ता और पासवर्ड सही हैं, तो AuthenticatorActivity
तो करता है:
- तो
account
मौजूद नहीं था यहmAccountManager.addAccountExplicitly()
authToken
intent.putExtra(AccountManager.KEY_AUTHTOKEN, authToken);
इस का उपयोग करते हुए सहेजा जाता है का उपयोग कर बनाता है मूल रूप से एंड्रॉइड नमूने से कॉपी/पेस्ट किया गया था, इसलिए मुझे लगता है कि यह ठीक है।
मुद्दा यह है कि जब SyncAdapter
की शुरूआत और उपयोग करता
authtoken = mAccountManager.blockingGetAuthToken(account,
AuthenticatorActivity.PARAM_AUTHTOKEN_TYPE, true);
getAuthToken()
विधि Authenticator
वर्ग जो AbstractAccountAuthenticator
फैली अंदर कहा जाता है। और इस विधि के अंदर मैं एक बार फिर लॉगिन एंडपॉइंट मार रहा हूं।
उस बिंदु के बाद से लॉगिन endpoint फिर से हिट नहीं हो जाने तक authToken
समाप्त हो रहा है।
यह कुछ मुझे बहुत परेशान करती है, लेकिन मैं अगर वहाँ एक तरह से दो बार लॉगिन कर से बचने के लिए है जानना चाहते हैं कि नहीं है।
बंडल में वापस टोकन पास करने के बजाय 'AccountManager.setAuthToken()' का उपयोग करने के बारे में क्या? – alexanderblom
@alexanderblom: मैंने भी कोशिश की। कोई फर्क नहीं। – Macarse
मुझे लगता है कि दो लॉग इन के पीछे कारण यह सुनिश्चित करना था कि ऑथ टोकन अद्यतित हैं, लेकिन मुझे स्रोत का समर्थन करने के लिए मुझे स्रोत नहीं मिला। मुझे इसे कहीं और पढ़ना याद है जब मैंने सी 2 डीएम उदाहरण का पालन करने की कोशिश की, जब यह पहली बार Google I/O में पहली बार बाहर आया ... – Yenchi