您的位置:首页 > 其它

Activity的生命周期--通过状态来理解

2016-10-04 13:44 302 查看
网上有很多关于Activity的生命周期的博文,但是大都是站在生命周期调用方法的角度,并没有从Activity状态转换的角度去想这个问题。

今天看到一篇文章站在Activity的四种状态的角度来阐述Activity的生命周期,感觉对Activity的理解更加深入了。所以写下留作笔记。

Activity有四种状态:

运行状态:Activity位于栈顶,正在与用户交互。

暂停状态:只是暂时失去焦点,比如被另一个Activity的View覆盖,但是没有被完全覆盖。

停止状态:完全失去焦点变为不可见。

销毁状态:被系统销毁。

下面用一张图来说明问题:



详细解释下这张图:

首先,Activity A开始启动的时候要先依次调用OnCreat方法——OnStart方法——OnResume方法,进入前台与用户交互,这时候就进入了运行状态

之后,如果有另一个Activity B覆盖在了上述Activity A的上边但不是完全覆盖的时候,Activity A 便会调用OnPause进入暂停状态

这时如果覆盖Activity A 的Activity B退出了,Activity A 会调用OnResume重新回到运行状态

如果Activity B没有退出,而Activity A变为完全不可见(比如点击了返回桌面的键),就会调用OnStop进入停止状态。再此被调用,会调用OnRestart——OnStart进入——OnResume进入运行状态

如果被调用发现由于内存不足等原因应用进程被暂时终止了,Activity需要被重新创建,所以会调用OnCreat方法——OnStart方法——OnResume方法,进入了运行状态

Activity调用finish方法后,就会调用OnDestroy方法(当然要先执行前边的生命周期中的方法)

不同的Activity对应不容的回调方法,这样理解是不是更容易些了呢?欢迎留言讨论。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息