您现在的位置是:首页 > 文章详情

《Android 开发入门与实战(第二版)》——6.2节Activity的生命周期

日期:2017-05-01点击:320

本节书摘来自异步社区《Android 开发入门与实战(第二版)》一书中的第6章,第6.2节Activity的生命周期,作者eoe移动开发者社区 组编 , 姚尚朗 , 靳岩,更多章节内容可以访问云栖社区“异步社区”公众号查看

6.2 Activity的生命周期
Android 开发入门与实战(第二版)
Activity的重要性在Activity介绍中已经大概描述了,为了更好地使用Activity,接下来我们介绍一下Activity的生命周期。

在讲Activity生命周期之前,我们先看图6-1(Activity的生命周期)。


cc8291b1cb95328d35afa39fb095fb925f619187

从图6-1中我们可以看到Activity的生命周期其实就是由以下函数组成的。

public class Activity extends ApplicationContext{ protected void onCreate(Bundle savedInstanceState); protected void onStart(); protected void onRestart(); protected void onResume(); protected void onPause(); protected void onStop(); protected void onDestroy(); }

通常情况下Activity生命周期的动作如下所示。

onCreate():该方法是在Activity第一次被创建的时候调用的。这个方法通常用来做一些常规的设置,比如创建视图,绑定数据到list等。这个方法还提供了一个Bundle对象来保存先前冻结的状态,当然,前提是你之前已经将你需要冻结的内容放到了Bundle中。之后总是会调用onStart()方法,并且在调用了这个方法之后,是不能被系统意外杀死的。

onRestart():从名字就能看出,在Activity被停止后,如果需要重新启动,则会调用这个方法,之后会调用onStart()方法。

onStart():该方法在Activity将要对用户可见时调用,如果Activity将显示在前台,接着调用onResume(),如果Activity将变隐藏,则调用onStop()方法。不能被系统意外杀死。

onResume():该方法是在Activity将开始于用户交互时被调用的,这个时候的Activity在Activity栈中处于最顶部,之后总是调用onPause()方法。也不能被系统意外杀死。

onPause():该方法是在系统准备恢复其他Activity时调用,这个方法通常用来提交未保存变化的持久化数据,停止动画和其他可能消耗CPU的操作等。由于在这个方法返回之前,下一个Activity是无法被恢复的,所以这个方法的实现不宜做耗时的操作。如果调用了该方法之后,Activity又打算重新返回到前台,则会调用onResume()方法,如果Activity变得对用户不可见,则调用onStop()方法。在系统极端低内存的情况下可以被杀死。

onStop():该方法在Activity不再对用户可见时调用,因为其他Activity已经恢复并且正在覆盖当前Activity。这个可能发生在当一个新的Activity正在启动,而已经存在的Activity又被带到了这个Activity的前面,或者这个Activity正在被销毁。调用了这个方法后,可能会被系统意外地杀死。

onDestory():该方法是在Activity被销毁之前最后调用的一个方法,这个可能发生在Activity被完成的时候。

上述提到的可能被系统意外杀死或者不能被杀死,是指Android系统在运行时,会在内存极端低下的情况下有选择性地杀死某些“不必要”进程以达到缓解内存不足的情况。

原文链接:https://yq.aliyun.com/articles/100537
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章