如何从AccountManager注销我自己的身份验证器?

时间:2015-06-03 01:31:52

标签: android accountmanager

我正在关注this question的回答。

但是我收到了这个错误:

  

java.lang.NoSuchMethodError:没有虚拟方法removeAccount(Landroid / accounts / Account; Landroid / app / Activity; Landroid / accounts / AccountManagerCallback; Landroid / os / Handler;)Landroid / accounts / AccountManagerFuture;在课程Landroid / accounts / AccountManager;或其超类('android.accounts.AccountManager'的声明出现在/system/framework/framework.jar中)。

如何正确退出?

public void logOut() {
    final Account accounts[] = mAccountManager.getAccounts();

    if (accounts.length > 0) {
        mAccountManager.removeAccount(accounts[0], (Activity) context, new AccountManagerCallback<Bundle>() {
            @Override
            public void run(AccountManagerFuture<Bundle> future) {
                try {
                    Bundle bnd = future.getResult();
                    Log.d(TAG, String.valueOf(bnd));
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }, null);
    }
}

1 个答案:

答案 0 :(得分:3)

我的解决方案如下。虽然它已被弃用,但它确实有效。如果您更了解任何解决方案,我将不胜感激。

&#13;
&#13;
mAccountManager.removeAccount(account, new AccountManagerCallback<Boolean>() {
                @Override
                public void run(AccountManagerFuture<Boolean> future) {
                    try {
                        if (future.getResult()) {
                            // do something
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }

                }
            }, null);
&#13;
&#13;
&#13;