在 "old" SDK 中删除帐户

remove account in "old" sdk

我尝试使用 Android 的 AccountManager class 为我的应用程序编写我的帐户自己的 AccountAuthenticator。我有一个 "Log out" 按钮,它应该删除现有帐户并再次打开 LoginActivity

为此,我使用 AccountManager:

的删除方法
 accountManager.removeAccount(account,null,new AccountManagerCallback<Bundle>() {
     @Override
     public void run(AccountManagerFuture<Bundle> future) {
       Bundle bnd = null;
       try {
           bnd = future.getResult();
           Log.d(TAG, "removing account  " + bnd);

           } catch (Exception e) {
                 e.printStackTrace();
                 Log.i(TAG, e.getMessage());
                 }
       }
    },null);

但我收到一条错误消息,告诉我此方法只能用于 22 之后的 SDK。我的 Miniman SDK 版本设置为 14。与方法 removeAccountExplicitly(account) 相同.

是否可以删除旧版 SDK 中的帐户?

一种可能是在 AccountManager 中使用另一个 removeAccount 方法,该方法自 api 22 起已被弃用,并且具有最低 api 级别 5。

如果你改变:

.removeAccount(account,null,new AccountManagerCallback<Bundle>() {

至:

.removeAccount(account,new AccountManagerCallback<Boolean>() {

对您的代码进行一些调整,它可能会起作用。

虽然不建议也不要使用已弃用的方法(它们出于某种原因已弃用),但它可能是您想要实现的目标的快速修复。

希望对你有帮助。