正常情况下activity会经历如下生命周期
1、oncreate:表示activity正在被创建,这是程序生命周期的第一个方法,在这个方法中我们可以做一些初始化工作,比如加载布局或者初始化数据等操作;
2、onrestart:表示activity正在重新启动。一般activity从不可见状态重新变为可见状态时调用此方法,比如正在运行的程序,客户按了home键,此时界面变为不可见,activity变为暂停,生命周期执行了onpause和onstop,用户接着又回到这个界面,此时便会调用onrestart;
3、onstart:表示activity正在被启动,即将开始,这是activity已经可见了,但是还诶有出现在前台,不能和用户进行交互。这时可以理解为activity已经可见,但是我们看不到。
4、onresume :表示activity已经可见,并且可以参与活动了。表示此时activity已经在前台了。
5、onpause:表示activity正在停止,正常情况下onstop就会被执行(当然在特殊情况下瞬间回到挡墙界面onresume也会被执行)。在这时用户可以进行一些数据存储,动画停止等操作,但是要注意不能太耗时,这会影响到activity的显示。
6、onstop:表示activity即将停止。可以做一些稍微重量级的操作,也不能太耗时。
7、ondestory:表示activity即将被销毁,这是activity生命周期的最后一个回调。在这里可以做一些回收工作和资源的释放。
activity生命周期如下图所示:
经于上图我们作如下分析:
1、对于特定的activity第一次启动,生命周期如下:oncreate->onstart->onresume;
2、当用户打开新的activity切换到桌面的时候执行如下:onpause->onstop;
这里有一个特殊情况如果新的activity使用了透明主题,那么当前activity不会调用onstop。
3、当用户回到原activity时,回调如下onrestart->onstart->onresume.
4、当客户按back键时,回调如下onpause->onstop->ondestory;
5、当activity被回收后再次打开,生命周期和新打开activity一般。
6、从整个生命周期来说,oncreate和ondestory是配对的,代表着程序的开始和结束,并且只能有一次调 用;
从activity是否可见来说,onstop和onstart是配对的,随着永和操作或者设备的电量和熄灭可以被调用多 次;
从activity是否在前台来说onresume和onpause是配对的,随着永和操作或者设备的电量和熄灭可以被调用 多次。