これまでのアクティビティをすべて終了する 質問する

これまでのアクティビティをすべて終了する 質問する

私のアプリケーションには次のフロー画面があります:

Home->screen 1->screen 2->screen 3->screen 4->screen 5

log out各画面に共通のボタンができました

Home/ screen 1 / screen 2 /screen 3/ screen 4 / screen 5

ユーザーがログアウト ボタン (どの画面からでも) をクリックすると、すべての画面が終了し、新しい画面Log inが開くようにしたいと思います。

私はこれを実現するためにほぼすべてを試しましたFLAG_ACTIVITY。また、stackoverflowのいくつかの回答も調べましたが、問題を解決できませんでした。私のアプリケーションはAndroid 1.6上にあるため、使用できませんFLAG_ACTIVITY_CLEAR_TASK

この問題を解決する方法はありますか?

ベストアンサー1

使用:

Intent intent = new Intent(getApplicationContext(), Home.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

これにより、ホーム上のすべてのアクティビティがクリアされます。

ユーザーがログインしてホームが作成され、その後その上に 1 から 5 までのすべての画面が作成されるときにログイン画面を終了していると仮定します。私が投稿したコードは、他のすべてのアクティビティを終了してホーム画面に戻ります。インテントに追加を追加し、それをホーム画面アクティビティで読み取って終了することもできます (そこからログイン画面を再度起動するなど)。

よく分かりませんが、このフラグを使用してログインしてみることもできます。その場合、アクティビティがどのように順序付けられるかは分かりません。そのため、現在表示されている画面を含め、現在表示されている画面の下のアクティビティがクリアされるかどうかは分かりませんが、間違いなくこの方法をお勧めします。

おすすめ記事