1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。
2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。
3.当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。
4.当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。
5.用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。
6.当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。
7.用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。
主要生命周期又可以分为两部分,异常情况下的生命周期和正常情况下的生命周期,这个是之前自己做的总结,
生命周期:生命周期中的主要方法,其中界面的主要方法顺序是
onCreate()
onStart()
onResume()
onPause()
onStop()
onDestroy()
其中还有onRestart()
onCreate()是整个activity初始化的地方
onStart是程序开始 此时程序对于android系统来说是可见的,相当于界面已经绘制好,但是现在还没有展示到前台界面。此时用户不可见。
onResume 是对用户来说界面可见了,所以在此中不能处理过多的东西,此时如果做耗时的行为app会展现的比较慢。
onPause 是activity即将不可见,此时在此中也不能做耗时的行为,如果做了耗时行为,应用在启动其他activity也是会有卡顿的。
onStop这个方法是界面已经对用户来说不可见了,此时也不能做相关耗时的工作。
onDestroy 这个方法时在activity将要被正常销毁掉了,此时会调用此方法
针对onRestart 是针对应用重新启动的方式,什么时候会重新启动呢,当界面被遮挡之后又展现出来此时会调用onRestart 相当于宠新启动。
Activity的生命周期其实分为两部分:
正常的生命周期
从图中可以看出其中有些方法时一一对应的,之所以定义这些回调方法时处理activity因为各种情况下的处理例如突然被打断,或者是其他的一些情况,从而满足各种各样的使用情形。
异常情况下的生命周期
异常情况又分为两种;
(1)系统内存回收机制,系统会根据activity的优先级来回收内存,
(2) 另一种情况是是手机的配置发生变化此时需要刷新activity来达到及时生效的目的,例如手机的屏幕方向变化这种常见的情况,此时手机会使activity 重新生成,来适应手机的配置变化情况,
对于第一种情况中的activity优先级 分为三类一种是前台activity 一种是后台activity 一种是前台但是非可见activity
这三种的优先级分别是 可见activity大于可见但是非前台 大于后台activity
如上图
1.onCreate
2.onStart
3.onResume
4.onPause
5.onStop
6.onDestroy
7.onRestart
2.可见生存期
3.前台生存期