Android-Activity生命周期(生命,有始有终!)
来源:互联网 发布:成都java 编辑:程序博客网 时间:2024/06/08 02:05
生命有生有死,这是大自然的规律,也是大自然的可持续性的最好彰显。试想一下,如果生命有生无死,最后地球得有多拥挤,最后导致毁灭。而程序也是模仿这种规律。比如动态分配内存,要用的时候就要先分配,在不需要的时候就要释放掉,如果只有分配,那这个程序最后的结果就会因为内存吃不消了而挂掉。Activity生命周期也基本上是这个原理。
Android 官方给出了Activity的生命周期图:
要理解Activity 的生命周期,需要理解Activity 栈,每一个Activity的状态都是由它在Activity栈中所处的位置决定的,Activity 栈是当前所有正在运行的Activity的后进先出的集合,这个也是符合栈的特性:先进后出的原则。当一个Activity 被激活并获得焦点,此时这个Activity 就会处在栈顶的位置,而在此之前的界面的Activity 在栈中的位置就会下移。
然后再了解一下Activity在其生命周期中的几种状态:
活动状态:当一个Activity在栈顶的时候,这个Activity 就获得了焦点,是可见的,此时它就可以跟用户进行交互。Android系统将优先所有条件来显示这个activity,甚至销毁栈下面部分的activity,来保证这个activity拥有它所需要的资源。而当另一个activity变为活动状态时,这个activity将被暂停,也就是onPause()。
暂停状态:某些情况下,Activity是可见的,但是并没有获得焦点,此时这个Activity就处于暂停状态。比如,当一个透明的或者非全屏的Activity显示在它之上时。而进入此状态的Activity,它仍然会被当作近似活动状态,但是它不能跟用户进行交互,也就不能接收用户的输入事件。当然,当系统走到极端的情况下,Android会主动终止暂停的Activity,以便为活动状态的Activity 释放资源。当一个Activity变的完全不可见的时候,该Activity就处在停止状态。
停止状态:当一个Activity不可见时,它就处于停止状态。此时的Activity 依旧停留在内存中并保存所有的信息。一个Activity停止的时候,保存数据和当前的UI状态以及停止任何非关键操作是非常重要的。而在系统需要释放内存时,处在停止状态的Activity 就是首要释放的对象。当一个Activity被退出或者关闭时,它就会变为非活动状态。
非活动状态:当一个Activity被终止之后,在启动之前它就处于非活动状态,此时的Activity就已经从Activity栈中移除了。到此,要再次显示和使用该Activity就要重新启动了。
0 0
- Android-Activity生命周期(生命,有始有终!)
- Android Activity生命週期簡介
- 【Android】【Activity生命周期】Activity生命周期
- Android Activity之---(生命周期)
- Android activity 生命周期(一)
- Android面试(Activity生命周期)
- 有始有终
- Activity生命状态、生命周期和生存期的详解
- android(31)(activity的生命周期)
- Android开发(二) Activity生命周期
- Android—第一张(Activity+生命周期)
- Android--Activity的生命周期(一)
- Android入门基础(7) ---activity生命周期
- Android学习笔记(4):Activity生命周期
- Android Activity生命周期举例说明(图文)
- Android 组件 — Activity (生命周期管理)
- Android项目(三)-- Activity生命周期演示
- (Android学习笔记)Activity的生命周期
- liferay searchContainer 分页实现
- Fix Eclipse鼠标点击变量高亮显示时好时坏的BUG
- TableView的基本使用
- jQuery常见的50种用法
- 防抖动的按键事件(定时器)
- Android-Activity生命周期(生命,有始有终!)
- Ubuntu下软件安装ant1.9.4、Maven3.2.5
- 如何提高效率 Aaron Swartz
- 浅谈三层
- 浩浩荡荡的linux学习之路即将启程,特开通此博客来总结自己的所学
- solrcloud 非leader节点同步索引的日志记录
- std::map的insert和下标[]访问
- 数据结构笔记 - 图
- 学校的景点见得最短路径问题