我正在创建一个新的 Android 应用程序SyncAdapter
来处理数据库同步。我已经准备好一切,应用程序运行良好,但我注意到我登录了两次。
第一次登录发生在AuthenticatorActivity
类(它扩展AccountAuthenticatorActivity
)验证用户和密码时。
如果用户名和密码正确,AuthenticatorActivity
则执行以下操作:
- 如果
account
不存在,它会使用mAccountManager.addAccountExplicitly()
authToken
保存使用intent.putExtra(AccountManager.KEY_AUTHTOKEN, authToken);
这基本上是从 Android 示例中复制/粘贴的,所以我想没关系。
问题是当SyncAdapter
启动和使用
authtoken = mAccountManager.blockingGetAuthToken(account,
AuthenticatorActivity.PARAM_AUTHTOKEN_TYPE, true);
调用扩展类getAuthToken()
内部的方法。在这个方法中,我再次点击登录端点。Authenticator
AbstractAccountAuthenticator
从那时起,在authToken
过期之前不会再次点击登录端点。
这不是让我很困扰的事情,但我想知道是否有办法避免登录两次。