[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)から、作りなおさずに再利用する。