目的

Androidアプリで遷移元のページに戻らせたくない時の処理メモ
例えば、登録画面 → 会員画面と遷移した時
会員画面から登録画面に戻れてしまい、重複して登録ボタンが押せちゃうとかないようにする場面とか。

環境

  • Android Studio 3.6.1
  • kotlin 1.3.71

参考サイト

Qiita Activityのスタックをすべて消すIntentを作成する

実装メモ

遷移時のintentのflagsオプションで以下のように設定する。

設定
flags = FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK

具体的に
button.setOnClickListener {
    val intent = Intent(application, SecondActivity::class.java)
    intent.flags = FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK
    startActivity(intent)
}

挙動

気になったこと

戻れなくする方法としてはFLAG_ACTIVITY_CLEAR_TOPが有効だと思っていたのだけど、
戻れてしまう。古いバージョンでの知識だったか!?

最近(Android10)は戻るボタンを非表示にして、ジェスチャーで戻る操作をすることができて、
今後それが狩猟になっていく可能性もありそうだけど。。
ジェスチャーでの挙動は試していません。