我在我的应用中使用了android AccountManager
。在初始屏幕中,我拨打getTokenForAccountCreateIfNeeded
以获取身份验证令牌或显示登录屏幕,但没有帐户存在于应用程序中。从应用程序注销时删除帐户或无效的授权令牌?
private void getTokenForAccountCreateIfNeeded(String accountType, String authTokenType) {
final AccountManagerFuture<Bundle> future = mAccountManager.getAuthTokenByFeatures(accountType, authTokenType, null, this, null, null,
new AccountManagerCallback<Bundle>() {
@Override
public void run(AccountManagerFuture<Bundle> future) {
Bundle bnd = null;
try {
bnd = future.getResult();
final String authtoken = bnd.getString(AccountManager.KEY_AUTHTOKEN);
LogUtils.ShowToast(SplashScreen.this, authtoken);
if(authtoken!=null)
{
goToHomePage();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
, null);
}
当注销按下我叫
AccountManager manager = AccountManager.get(HomeActivity.this);
manager.invalidateAuthToken(Constants.CONTENT_AUTHORITY,preferences.getString(Constants.AUTH_TOKEN,""));
删除的authToken。并且身份验证令牌被删除。
现在,当我回到初始屏幕并调用getTokenForAccountCreateIfNeeded
时,它将返回一个空包。所以访问令牌为空没有任何反应。
我应该在用户注销时删除帐户,还是应该在访问令牌为空时调用somthing else来显示登录页面。如果我应该调用其他方法,然后请告诉哪个方法来显示登录。
对不起,我的无知,但我想你错过了其他部分代码导航到登录页面,如果访问令牌为空。 – blizzard