一运行时各个状态生命周期
第一次运行Activity:onCreate--onStart--onResume
退出:onPause--onStop--onDestroy
跳转第二个Activity:onPause01--onCreate02--onStart02--onResume02--onstop01
返回第一个Activity:onPause02--onRestart01--onStart-onResume01--onStop02--onDestroy02
按Home键:onPause--onStop 再次进入:onRestart-onStart-onResume
弹出Activity的对话框:onPause 返回 onResume
二 横竖屏切换生命周期
android:configChanges = "mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale"
设置了configChanges后,旋转屏幕就不会重启activity.而只是调用onConfigurationChanged(Configuration newConfig).
总结:
1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次
2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法
例子:
运行Activity:
onCreate-->
onStart-->
onResume-->
切屏时执行一次(二次就重复以下):
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->