1. ホーム
  2. アンドロイド

[解決済み】前のアクティビティに戻るのを防ぐには?

2022-04-06 23:54:08

質問

携帯電話のBACKボタンが押されたとき、特定のアクティビティが前のアクティビティに戻らないようにしたい。

具体的には、ログイン画面とサインアップ画面があり、どちらも新しいアクティビティである HomeScreen ログイン/サインアップに成功したとき HomeScreenが開始されると、ユーザーがBACKキーを押してログインまたはサインアップ画面に戻ることができないようにしたいです。

を使ってみました。 Intent.FLAG_ACTIVITY_NO_HISTORY しかし、このアプリケーションはFacebookと連携しているため、「Facebookでログイン」を使用すると、Facebookは最初のログイン画面に戻るはずなので、これらのアクティビティの履歴を保持する必要があります。

のBACKボタンの挙動をオーバーライドすることを考えました。 HomeScreen ボタンが押されたときに直接アプリケーションを終了させるために、私は

@Override
public void onBackPressed() {
    finish();
}

が、これもうまくいきません。

解決方法は?

私の提案は、ユーザーに戻って欲しくないアクティビティを終了させることです。たとえば、サインイン・アクティビティで、次のように呼び出した直後です。 startActivity を呼び出す。 finish() . ユーザーが戻るボタンを押すと、サインインアクティビティがスタックから削除されるため、サインインアクティビティに移動することができません。