【发布时间】:2014-03-31 12:42:50
【问题描述】:
我在我的应用程序中使用 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 时,它会返回一个空包。所以当访问令牌为空时,什么都不会发生。
我应该在用户注销时删除帐户,还是应该在访问令牌为空时调用其他方法来显示登录页面。如果我应该调用一些其他方法,那么请告诉调用哪个方法来显示登录。
【问题讨论】:
-
抱歉我的无知,但如果访问令牌为空,我认为您错过了导航到登录页面的代码的其他部分。