# Activity 的生命周期
所谓生命周期,就是一个Activity 从创建到销毁的一个完整工程,在这个过程中Activity从无到有、从后台到前台、从可见到与用户交换;当然也包括与之相对应的相反的过程。那么在这些重要的节点上,android 为我们提供了应用的回调函数,重写这些函数,我们就可以在不同的节点实现相应的功能。首先来看一下经典的描述Activity生命周期的图片。![Activity生命周期](https://img-blog.csdn.net/20160308112147535)
下面分别介绍一下各个方法
(1) onCreate
活动第一次被创建时调用,在Activity的生命周期中只执行一次。在这个方法中需要做一些初始化工作,比如setContentView 加载布局,数据初始化等。
(2) onStart
Activity 变为可见,但是还没有到前台。
(3)onResume
Activity已经可见 并且 来到前台,就是说这个时候我们才看到activity,并且可以与之交互。
(4)onPause
当我们准备启动其他活动时被调用,我们可以在这个方法中执行一些回收资源,保存数据的操作,但是避免耗时操作,以免影响其他活动的启动。
(5)onStop
由可见变为不可见,其实是活动回到了后台。如果我们启动了一个对话框,或者是透明的活动,那么之后执行onPause ,onStop()不会被调用。
(6)onDestory
Activity 被回收。
(7)onRestart
当活动重新启动时调用。比如当我们从 活动 A 启动 活动B,之后按返回键,那么 A 的onRestart 方法被调用,紧接着执行 onStart,onResume方法。
下面我们结合一个例子,还体会一下不同情况下,activity都执行了哪些过程。我的例子是中包括MainActivity,和Activity2两个活动,以及从MainActivity 启动 Activity2,代码比较简单,在这里只展示一些Log 的信息。
(1)启动程序
![这里写图片描述](https://img-blog.csdn.net/20160308122115456)
(2)切换到桌面
![这里写图片描述](https://img-blog.csdn.net/20160308122300536)
(3)重新打开
![这里写图片描述](https://img-blog.csdn.net/20160308122420350))
(4)黑屏
![这里写图片描述](https://img-blog.csdn.net/20160308122623556)
(5)启动Activity2
![这里写图片描述](https://img-blog.csdn.net/20160308122743053)
这里我们需要注意的是,MainActivity 的 onPause 执行后 紧接着执行 Activity2 的启动 过程,Activity2 的onResume执行后,才执行MainActivity 的onStop,如果Activity2 的主题为透明或者是个dilog,那么 onStop 不执行。
(6)返回MainActivity
![这里写图片描述](https://img-blog.csdn.net/20160308123141548)
以上介绍的都是正常情况下,Activity的生命周期执行过程,那么有时候,Activity 并不是正常结束的,比如 屏幕转换,Activity被回收等等,那么这时候又会执行哪些函数那?
Android 学习总结 Activity(1)-Activity的生命周期
最新推荐文章于 2019-05-06 13:42:10 发布