Androidのライフサイクルを実際にログに出力して試してみました。
各メソッドの説明はドキュメントの説明を読んでもらったほうがいいです。
アクティビティのライフサイクルを管理する
ソースコード
LifecycleActivity.kt
private const val TAG = "LifecycleActivity"
class LifecycleActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Log.d(TAG, "onCreate(Bundle) called")
setContentView(R.layout.activity_lifecycle)
}
override fun onRestart() {
super.onRestart()
Log.d(TAG, "onRestart() called")
}
override fun onStart() {
super.onStart()
Log.d(TAG, "onStart() called")
}
override fun onResume() {
super.onResume()
Log.d(TAG, "onResume() called")
}
override fun onPause() {
super.onPause()
Log.d(TAG, "onPause() called")
}
override fun onStop() {
super.onStop()
Log.d(TAG, "onStop() called")
}
override fun onDestroy() {
super.onDestroy()
Log.d(TAG, "onDestroy() called")
}
}
アプリを立ち上げたとき
D/LifecycleActivity: onCreate(Bundle) called
D/LifecycleActivity: onStart() called
D/LifecycleActivity: onResume() called
バックグランド状態になったとき
HomeボタンやOverviewボタンを押した場合
D/LifecycleActivity: onPause() called
D/LifecycleActivity: onStop() called
(OSの判断によっては破棄されることもある)
バックグラウンド状態から状態フォアグラウンドになったとき
D/LifecycleActivity: onRestart() called
D/LifecycleActivity: onStart() called
D/LifecycleActivity: onResume() called
バックグラウンド状態からアプリ消去したとき
D/LifecycleActivity: onDestroy() called
起動中にアプリを回転させたとき
D/LifecycleActivity: onPause() called
D/LifecycleActivity: onStop() called
D/LifecycleActivity: onDestroy() called
D/LifecycleActivity: onCreate(Bundle) called
D/LifecycleActivity: onStart() called
D/LifecycleActivity: onResume() called
戻るボタンでアプリを消したとき
D/LifecycleActivity: onPause() called
D/LifecycleActivity: onStop() called
D/LifecycleActivity: onDestroy() called
参考文献
Understand the Activity Lifecycle
Android Programming: The Big Nerd Ranch Guide (3rd Edition) (Big Nerd Ranch Guides)