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
- Android中“活动(Activity)的生命周期(lifeCycle)”
- 活动的生命周期(Activity Lifecycle)
- 掌握Activity 的生命周期(Lifecycle)
- 活动的生命周期<LifeCycle>
- 活动(Activity)的生命周期
- Managing the Activity Lifecycle 管理活动的生命周期
- (三)Managing the Activity Lifecycle管理activity的生命周期
- Android Develop Training——管理Activity的生命周期(Managing the Activity Lifecycle)
- Android之Activity(三):活动的生命周期
- 基础篇(一) Activity生命周期(lifecycle)
- android 生命周期 Activity/Fragment lifecycle
- android Activity Lifecycle即生命周期
- 二、活动(Activity)的生命周期
- Activity 生命周期观察-Android Activity Lifecycle Observation
- Android Activity活动生命周期
- AS中活动Activity的生命周期
- Activity生命周期(Activity Lifecycle)
- 活动的生命周期 activity
- python 学习笔记 day1
- 如果一个箱子里面有100个球,有两个玩家,1和2,他们都很聪明,可以随机从箱子里面拿出2或6个球,箱子是透明的并且箱子里面有多少个球他们也可以看得到 ,如果算最后一个球能被谁拿到,谁就是
- const与引用,指针的初级用法
- Java基础之堆内存与栈内存
- 如何包装你的实验结果
- Android中“活动(Activity)的生命周期(lifeCycle)”
- JDK1.5新特性-增强for循环
- 《Java高并发程序设计》学习 --2.1 基本概念
- 最长上升子序列nlogn算法
- Redis学习笔记(十)消息通知(任务队列和发布订阅模式)
- STL中map实现原理
- 进程知识点
- #203. Koishi Loves Dynamic Programming
- JDK1.5新特性-可变参数