第1章 Activity的生命周期和启动模式 1.1 Activity的声明周期全面分析

来源:互联网 发布:flac转mp3 mac 编辑:程序博客网 时间:2024/06/05 11:19

1.1 Activity的声明周期全面分析

1、典型情况下:

(1)onCreate:表示Activity正在被创建;可进行一些初始化操作。

(2)onRestart:表示Activity正在重新启动;一般在Activity从不可见变为可见时调用。

(3)onStart:表示Activity正在被启动;Activity已可见,但是还没出现在前台。

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

(5)onPause:表示Activity正在停止;可做一些存储数据,停止动画等工作,注意不能太耗时,否则会影响新Activity的显示;正常情况下,紧接着调用onStop;极端情况下,onResume调用(返回特别快)。

(6)onStop:表示Activity即将停止;可做一些稍微重量级的回收工作,同样不能太耗时。

(7)onDestroy:表示Activity即将被销毁;可做一些回收工作和最终的资源释放。

2、问:onStart和onResume、onPause和onStop从描述上来看差不多,对我们来说有什么实质性的不同?

答:onStart和onStop都是从Activity是否可见这个角度来回调的;onResume和onPause是从Activity是否位于前台这个角度来回调的。

3、问:假设当前Activity为A,若这时用户打开一个新ActivityB,那么B的onResume和A的onPause哪个先执行?

答:旧Activity先onPause,新Activity再启动。

4、异常情况下:

(1)情况一:资源相关的系统配置发生改变导致Activity被杀死并重新创建,例如:旋转屏幕。

注:会调用onSaveInstanceState(正常启动时,其参数为null)==>onCreate==>onStart==>onRestoreInstanceState(一旦被调用,其参数一定有值)

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

5、Activity按优先级从高到底,可分为以下三种:

(1)前台Activity:正在和用户交互的Activity。

(2)可见但非前台Activity:例如:弹出对话框。

(3)后台Activity:已经被暂停的Activity。

注:如果一个进程中没有四大组件在执行,那么这个后台进程将很快被系统杀死。

1 0
原创粉丝点击