如问题标题所述,AccountManager将通过调用getAuthToken
启动LoginActivity,但之后它不会进入回调。
奇怪的是,如果它有任何方式获得不需要启动活动的身份验证令牌(如缓存令牌或我的刷新令牌机制),它会转到回调。只有从LoginActivity返回时它才能正常工作。
所以我想我可能没有将所有内容都放在Android所期望的结果包中,但 它期望的是什么?文档很简单。
以下是登录活动的相关部分:
Bundle result = new Bundle();
if (tokens.hasAccess()) {
result.putString(AccountManager.KEY_ACCOUNT_NAME, account.name);
result.putString(AccountManager.KEY_ACCOUNT_TYPE, account.type);
result.putString(AccountManager.KEY_AUTHTOKEN, tokens.access);
}
setAccountAuthenticatorResult(result);
setResult(Activity.RESULT_OK);
finish();
我的问题与in this SO question相同,直到我重新启动时延迟调用回调。但他的解决方案并不适合我,我已经在我的身份验证器中有putExtra(KEY_ACCOUNT_AUTHENTICATOR_RESPONSE, response)
。