activity生命周期分析

来源:互联网 发布:阿尔法收益 知乎 编辑:程序博客网 时间:2024/05/17 21:39

正常情况下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是配对的,随着永和操作或者设备的电量和熄灭可以被调用多次。

       

1 0
原创粉丝点击