2

Android Authenticator API ( AccountManager ) を利用したアプリを開発したので、設定画面からアカウントの追加や削除ができます。

アプリケーションからログアウトすると、プログラムでアカウントを削除し、ユーザーをAccountAuthenticatorActivityに戻すことができます。ただし、ユーザーが設定画面から手動でアカウントを削除した場合、(実行中の) アプリがこの状態を検出し、再度開いたときに自動的にログアウトされるようにしたいと考えています。

各アクティビティのonResumeメソッドを上書きする(または新しい Activity クラスから拡張する) ことを考え、認証システムにgetAuthTokenByFeaturesを要求することで、アプリが再開されたときに、アカウントが削除された場合にユーザーにログインを要求します。しかし、私は Android を初めて使用するので、これが適切なアプローチかどうかわかりません。

4

1 に答える 1

2

OK、 AccountManagerクラスのaddOnAccountsUpdatedListenerメソッドを発見しました。

それを使用して、私は自分の質問に答えます。アプリのメイン アクティビティの onCreate メソッドで:

    accountsListener = new OnAccountsUpdateListener() {
        @Override
        public void onAccountsUpdated(Account[] accounts) {
            Account[] myAccounts = mAccountManager.getAccountsByType(AccountGeneral.ACCOUNT_TYPE);
            if (myAccounts.length == 0) {
                // The account has been deleted
                Intent i = new Intent(mContext, PromptLoginActivity.class);
                startActivity(i);
                finish();
            }
            return;
        }
    };

    mAccountManager.addOnAccountsUpdatedListener(accountsListener, null, true);
于 2014-05-08T09:08:18.577 に答える