Android中“活动(Activity)的生命周期(lifeCycle)”

来源:互联网 发布:查重软件是什么 编辑:程序博客网 时间:2024/06/05 07:16

Android中“活动(Activity)的生命周期(lifeCycle)”

1.     Activity是Android四大组件之一

四大组件名称

核心作用

Activity

界面控制的程序流程存放

Service

服务:维持一个进程保持长生命周期

Content Provider

数据集供给

Broadcast Intent Receiver

通信:传送/接收数据

详解,网上有很多。

2.     生命周期(LifeCycle)是什么?

简单讲,就是从“产生”à“消亡”,这个过程中,它存在的时长。

3.     Android引入“生命周期机制”的原因是什么?

最根本的原因,是“资源竞争”——内存。

智能手机通常都要求支持多任务(multi-task),比如打开音乐播放器同时,还在使用其他应用程序。“多任务”优势明显,也是用户最喜欢的;但也有缺点,大部分手机的内存总是有限的,这就需要OS对内存进行动态管理,当应用程序运行过多时,选择性地关闭一些进程(Android中,可以认为一个开启着的应用程序就是一个进程)并释放一些内存。

4.     Activity的四种状态

首先,一定要记得这样一个关键点:

Android平台上,同一时刻,只有一个Activity处于“活动<Active>”(或者说“运行<Running>”).

状态

意义

Active(活动)

正在运行之中:running

Paused(暂停)

当前Activity的画面暗下来,退作背景画面,有其他动作跳到前面来(由该Activity激发的动作)

Stopped(停止)

Activity离开屏幕不再产生动作,其他Activity进入屏幕运行(又叫Resume:即取得屏幕控制权)。

Dead(未启动/已回收)

Activity尚未启动、被手动停止(程序中添加了finish()函数)或者已经被OS回收了。

 Activity的生命周期状态图如下:


5.     Activity的五种运行流程

假设有两个Activity,分别以代号1、2来标记

运行流程名

具体流程

一般启动

onCreate->onStart->onResume

调用另一个Activity

onPause(1)->onCreate(2)->onStart(2)->onResume(2)->onStop(1)

返回原来的Activity

onPause(2)->onRestart(1)->onStart(1)->onResume(1)->onStop(2)->onDestroy(2)

退出结束

onPause->onStop->onDestroy

回收后再启动

onCreate->onStart->onResume

可以参照上面生命周期状态图,来分别作出这5种运行流程状态变化图,可以加深自己的理解。

6.     系统内存不足时OS的“内存回收规则”

内存管理中,非常重要的一点,就是内存回收规则,什么时候该回收什么进程或者Activity。

Android系统中,当OS的内存不足时,按以下规则进行回收:

l  先回收与其他Activity、Service或Intent Receiver无关的Activity或进程(即:先回收“独立Activity”)

l  内存还不够用?再回收处于“Stopped”状态的Activity(最久没有被使用的Activity优先回收:即LRU算法)

l  内存还不够用?回收Service进程

l  内存还不够用?(那估计手机本身已经快不行了吧!)直接关掉可见的Activity或进程

l  最后就是直接关闭当前的Activity。(手机已经只剩下一口气了,开开屏幕玩吧!)

 

by Yeats 2017.3.13 night

 

0 0
原创粉丝点击