您的位置:首页 > 移动开发 > Android开发

《Android 开发艺术探索》读书笔记一 Activity的生命周期

2016-04-09 19:20 543 查看
一、典型情况下Activity的生命周期

(一)七个生命周期

1、onCreate:生命周期的第一个方法,表示Activity正在被创建;

2、onRestart:当当前Activity从不可见重新变为可见状态时被调用,表示Activity正在被重新启动;

3、onStart:表示Activity正在被启动,这是Activity已经可见,但还没出现在前台,但用户看不到,还无法和用户进行交互;

4、onResume:表示Activity已经可见并且出现在前台并开始活动;

5、onPause:表示Activity正在停止,正常情况下,紧接着onStop就会被调用。此时可以存储数据、停止动画等,但不能太耗时(会影响新Activity的显示);

6、onStop:表示Activity即将停止,可以做一些回收工作,但不能太耗时;

7、onDestory:表示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)从整个生命周期来说,onCreate和onDestory是配对的,标识Activity的创建和销毁,且只回调一次;

从Activity是否可见来说, onStart和onStop是配对的,可能被回调多次;

从Activity是否在前台来说,onResume和onPause配对,可能被回调多次;

(6)打开一个Activity A,然后再打开另一个Activity B,对于A:

onCreate –> onStart –> onResume –> A运行 –> A发出打开B的Intent –> onPause–>B可见–>onStop,此时,B会经历一个完整的Activity生命周期。等B结束,A再度可见的时候,A会经历:

onRestart–>onStart–>onResume。

二、在异常情况下Activity的生命周期

情况1:资源相关的系统配置发生改变导致Activity被杀死并重新创建。

例如,当前Activity处于竖屏状态的时候突然转成横屏时,系统配置发生了改变,Activity就会销毁并且重建,其onPause, onStop, onDestory均会被调用。因为实在异常情况下终止的,所以系统会调用onSaveInstanceState 来保存当前Activity状态。

情况2:资源内存不足导致低优先级Activity被杀死

Activity优先级

(1)前台Activity——正在和用户交互的Activity,优先级最高

(2)可见但非前台Activity——Activity中弹出的对话框导致Activity可见但无法交互

(3)后台Activity——已经被暂停的Activity,优先级最低。

系统内存不足时,会按照以上顺序杀死Activity,并通过onSaveInstanceState和onRestoreInstanceState这两个方法来存储和恢复数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: