よくあるケースとして、別のActivityを起動して今開いてるActivityを閉じるというケースがあると思います。実はこのときに startActivity
と finish
を呼び出す順番で挙動が異なります。
先に startActivity
を呼び出して次に finish
を呼び出す場合は基本的に意図しない挙動にはなりません。
startActivity(intent)
finish()
逆に先に finish
を 呼び出して startActivity
を呼び出す場合は、実は意図しない挙動になっています。
finish()
startActivity(intent)
このとき、ActivityのIntentには FLAG_ACTIVITY_NEW_TASK
が自動で追加されています。
呼び出し先のActivityに以下のようなコードを書いておくと確認できます。
この挙動が意図しない結果になる可能性があるため注意が必要です。
基本的に startActivity
を呼び出してから finish
を呼び出すようにしたほうが安全だと思います。