1. ホーム
  2. android

AndroidでバックスタックからActivityを削除する

2023-09-13 18:09:44

質問

さて、これをどうするかでちょっと困っています。MainActivityがあり、そこからDegreePlanActivityにActivityを起動し、そこからEditDegreePlanに別のActivityを起動することができるのです。AndroidManifestでEditDegreePlanをnoHistoryに設定しています。問題は、EditDegreePlanを保存した後、DegreePlanへのActivityが起動されることです。従ってユーザーがBackを押せばMainActivityに再び得るためにそれを2回押さなければならない。私はそれを取り除きたいと思う従って彼らはそれを1度だけ押す必要がある。しかし、私はこれを行う方法について困っています。

DegreePlanActivityをnoHistoryに設定したら、EditDegreePlan中にBackを押せなくなりました。

onBackPressedメソッドをオーバーライドして、MainActivityにインテントを起動することを試みました。問題は、そのとき、アプリを終了するために何度も Back を押さなければならないことです。

どうしたらよいでしょうか。

どのように解決するのですか?

フラグ_アクティビティ_クリア_トップ はアクティビティスタックをクリアします。

Intent intent = new Intent(this, Activity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

このフラグは中間活動のみをクリアすることを忘れないでください。 Back Stack がある場合、このフラグで C のアクティビティから D のアクティビティに移動すると、次のようになります。 ではありません。 クリア Back Stack で、スタックはA,B,C,Dになりますが、このフラグでアクティビティDからアクティビティAに移動すると、スタックからB,C,Dアクティビティがポップアップして、バックスタックにAだけが表示されます。