Activityのライフサイクル
新規画面起動
onCreate → onStart → onResume
画面表示時から終了
onPause → onStop → onDestroy
画面表示時からバックグラウンドへ
onPause → onStop → onSaveInstanceState
※onDestroyではなくonSaveInstanceStateが実行される
バックグラウンドからアクティブへ
onRestart → onStart → onResume
※onRestart() メソッドには、アクティビティを起動するのが初めてではない場合に実行するコードを記載
画面表示時にダイアログを表示しダイアログを閉じる
onPause → onResume
デバイスの回転時
onPause → onStop → onSaveInstanceState → onDestroy → onCreate → onStart → onResume
※onSaveInstanceState実行後onDestroyで終了。onCreateから再開
必要情報はonSaveInstanceStateでBundleに保存する
// 画面情報を保存する項目名を定義
const val KEY_REVENUE = "revenue_key"
const val KEY_DESSERT_SOLD = "dessert_sold_key"
class MainActivity : AppCompatActivity() {
private var revenue = 0
private var dessertsSold = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// 初期表示でない場合はsavedInstanceStateの値を使用する
if (savedInstanceState != null) {
revenue = savedInstanceState.getInt(KEY_REVENUE, 0)
dessertsSold = savedInstanceState.getInt(KEY_DESSERT_SOLD, 0)
}
}
// 画面情報を保存する
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
// 画面情報をBundleに保存
outState.putInt(KEY_REVENUE, revenue)
outState.putInt(KEY_DESSERT_SOLD, dessertsSold)
}
}
トレーニング > KOTLIN を用いた ANDROID の基本 > ナビゲーション > 画面の移動 > アクティビティのライフサイクルのステージ > 4. ライフサイクルのユースケースを確認する