Androidの場合、遷移するとアクティビティはどんどんスタックされていく
通常の場合は
val intent = Intent(this, SecondActivity::class.java) startActivity(intent)
のように遷移させていくと、
この図のように、アクティビティが積み重なっていく
前のアクティビティに戻るには
// Fourth Activityを削除 this.finish()
と書く
そうすると、Fourth Activityが終了されて、一番上に積まれているThird Activityが表示される
普通の遷移ではこれで良いのですが、この方法で First Activity まで戻ろうとすると、
1つずつアクティビティを終了しないといけない(普通これでいいんですけど)
Fourth Activity から First Activity に一気に戻るには、以下のようにするとよい
val intent = Intent(this, FirstActivity::class.java) // setFlagsで今まで積み重ねたActivityをすべて破棄する intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) startActivity(intent)
と書くと、Fourth Activity から今まで積み重ねたアクティビティをすべて破棄(終了)して、First Activityに遷移することができる
(シンプル!かつ短い!)
意外と遷移した時に、アクティビティがどうなっているかなど忘れがちなので、注意して設計する必要がある