Activityの履歴を消す

画面が
 A → B → C → D
と遷移して最後のDからAに戻るとします。
Aに戻るときも

Intent intent = new Intent(FinalActivity.this, MainActivity.class);
startActivity(intent);

みたいな感じですよね。きっと。

そうした時に端末の「戻る」ボタンが押された時にAからDへ戻ってしまうわけです。
これはマズい!嫌だ!

戻るボタンを利用不可にしたり、D→C→B→A と finish() をさせていったり。
面倒な事をしていたのですが、どうやら簡単に解決できるらしいです。

それがこれです

Intent intent = new Intent(FinalActivity.this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

2行目のIntent.FLAG_ACTIVITY_CLEAR_TOPを指定することで履歴(?)をクリアしてくれます。

コメントを残す

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