Activityのライフサイクル

  • 投稿者:
  • 投稿カテゴリー:その他

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. ライフサイクルのユースケースを確認する