生命周期图
(图片来自百度)
activity的生命周期图中可以看到 第一个被执行到的系统方法为onCreate 他在activity初始化之初被执行,所以我们把大多数初始化方法在onCreate中实现 如对布局文件的引入,数据库的实例等,此方法基本为activity的比用方法。
第二个被执行的是onStart 从字面意思也可以看出此方法在activity正式启动的时候调用,由于前面有oncreate方法后面还有别的,他们之间的间隔时间极短,所有一般不再此方法中操作逻辑代码。
注意:由于oncreate和onstart 在activity启动时调用 所以不建议在这两个方法中写耗时操作 否则会延长activity启动的时间 影响用户体验。
第三个方法 onResume 此方法在activity启动完成 到页面显示时被调用。也是比较常用的方法,如页面的一些显示逻辑等都可以在此方法实现。
当activity 不在当前显示,发生此状态会首先调用onPause方法。如果有需要在activity在非显示状态(退出,覆盖,切换,锁屏等)的逻辑处理可在此方法实现。
onStop 方法在 onPause之后马上执行,所有onPause中的处理逻辑也可以在onStop中处理。
onDestory 在activity被杀死之前,onStop之后执行(注意:onStop之后不一定会执行onDestory,只有在activity被销毁之前执行/系统销毁或者人为销毁)。在此方法中处理activity销毁时的处理。如释放内存,清除服务实例等。
当activity被别的activity覆盖在返回重新显示时 会从onPause直接再走一遍onResume ,
当activity被覆盖状态下被系统杀死(出现在系统内存不足情况等)时, 会从onStop走到onCreate(相当于重新启动)
当app被切出或者手机锁屏等情况 会从onStop走到 onRestart 到onStart 然后重新显示。如果有这种情况的逻辑需求可以在onRestart 中实现。一般不用写在onStart