Activity的生命周期
1、onCreate()
当Activity创建的时候调用
2、onStart()
当Activity处于可见状态时调用。调用场景:Activity的启动顺序:onCreate()--onStart()--onResume()
3、OnResume()
(1)当MainActivity第一次启动时调用:onCreate()--onStart()--onResume()
(2)“The activity comes to the foreground”:即当前activity被挡住一部分后(失去焦点,处于onPause()状态),重新回到当前activity时(UI最顶层)调用,比如说解锁、弹窗消失等
4、onPause()
(1)调用场景:Activity comes to the foreground",即当SecondActivity启动时且不完全挡住MainActivity时调用(即MainActivity不在UI最顶层,单依然可见,比如弹窗、锁屏)
(2)此时退出SecondActivity(点击Back键),即MainActivity重新回到当前Activity时(UI最顶层),调用onResume(), 即onResume()是在当前Activity被挡住一部分后(失去焦点,处于onPause状态)重新回到当前Activity时(UI最顶层)调用。
5、onStop()
调用场景:“the activity is no longer visiable”,即当SecondActivity启动且完全挡住MainActivity时调用(或按Home键回到主屏)
(MainActivity不在UI最顶层切完全被挡住时)
如果此时退出(点击Back键)SecondActivity(或回到该应用),调用onRestart()。即onRestart()是当MainActivity从onStop()重新回到当前Activity(UI最顶层)时调用。
6、onRestart()
7、onDestroy()
当MainActivity退出时调用(点击Back键)调用finish()
8、完全解读
(1)启动Acitivity:系统会先调用onCreate()方法,然后调用onStart(),最后调用onResume(),Activity进入运行状态
(2)当前Activity被其他Activity覆盖一部分其上或被锁屏:系统会调用onPause(),暂停当前Activity的执行
(3)当前Activity由被覆盖(一部分)状态回到前台或解锁屏:系统会调用onResume(),再次进入运行状态
(4)当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台 :系统会先调用onPause(),再调用onStop(),进入停滞状态
(5)用户后退回到此Activity:onRestart()-->onStart()-->onResume()
(6)6.当前Activity处于被覆盖或不同见状态,当更高优先级的app需要内存,该Activity会被杀死
(7)用户重新回到该Activity:onCreate()-->onStart()-->onResume()
(8)用户退出当前Activity:onPause()-->onStop()-->onDestory()