1. ホーム
  2. java

[解決済み] これまでの活動をすべて終了する

2022-03-23 21:57:18

質問

私のアプリケーションには、次のようなフロー画面があります。

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

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

解決方法は?

使用する。

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

これでhomeの上にあるアクティビティはすべてクリアされます。

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

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