[android] これまで遷移してきたAcvitiyを破棄して最初のActivityに戻る

これまで遷移してきたAcvitiyを破棄して最初のActivityに戻る

アプリを作っていくと
A→B→C→Dと画面遷移させていって、D→Aのように最初に戻るように設計することがある

普通に作成するとA→B→C→D→Aと新しいAというActivityが上に表示されるが、戻るボタンでDに戻れたり、
メモリがもったいない場合にはA→B→C→D→Aと移動した時に、これまでのA→B→C→Dを破棄してAを再作成することができる

コード

Intent intent = new Intent(DActivity.this, AActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);

FLAG_ACTIVITY_CLEAR_TOP:遷移先のアクティビティが既に動いていればそのアクティビティより上にある(この場合はB, C, D)アクティビティを消す
FLAG_ACTIVITY_SINGLE_TOP:既に動いているアクティビティに遷移するとそのアクティビティを閉じてもう一度作りなおすデフォルトの挙動(multiple mode)から、作りなおさずに再利用する。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です