Activity的生命周期
来源:互联网 发布:苏联巅峰 知乎 编辑:程序博客网 时间:2024/06/05 14:15
Activity的生命周期
Activity 是用户唯一可以看得到的东西。几乎所有的activity都与用户进行交互,所以Activity主要负责的就是创建显示窗口,你可以在这些窗口里使用setContentView(View)来显示你自己的UI。activity展现在用户面前的经常是全屏窗口,你也可以将activity作为浮动窗口来使用(使用设置了windowIsFloating的主题),或者嵌入到其他的activity(使用ActivityGroup)中。系统中的Activity可以通过一个activity栈来进行管理。当一个新的activity启动的时候,它首先会被放置在activity栈顶部并成为running状态的activity —— 之前的activity也在activity栈中,但总是被保存在它的下边,只有当这个新的activity退出以后之前的activity才能重新回到前景界面。
所有的activity本质上有四种状态:
activity在屏幕的前景中(activity栈的顶端),它是active或者running状态。
activity失去了焦点但是仍然可见(这个activity顶上遮挡了一个透明的或者非全屏的activity),它的状态是paused。一个paused状态的activity完全是alive的(它维护自己所有的状态和成员信息,而且仍然在window manager的管理中),但当系统内存极度贫乏时也会将其killed。
activity由于其他的activity而完全变暗,它就进入了stopped状态。它仍然保持着所有的状态和成员的信息,可是,他对于用户来说不可见,当别的地方需要内存的时候它经常会被killed。
activity是paused或者stopped,系统需要将其清理出内存的时可以命令其finish或者简单kill其进程。当它重新在用户面前显示的时候,它必须完全重新启动并且将其关闭之前的状态全部恢复回来。
下面的图表是Activity的状态图,直角矩形代表了callback方法,你可以实现这些方法从而使Activity在改变状态的时候执行你制定的操作。带颜色的椭圆形是Activity的主要状态。
一般来说activity的生命周期变化看起来比较象下面的表格:
必调用的三个方法:onCreate() –> onStart() –> onResume(),用AAA表示
(1)父Activity启动子Activity,子Actvity退出,父Activity调用顺序如下
AAA –> onFreeze() –> onPause() –> onStop() –> onRestart()–> onStart(),onResume() …
(2)用户点击Home,Actvity调用顺序如下
AAA –> onFreeze() –> onPause() –> onStop() – Maybe –>onDestroy() – Maybe
(3)调用finish(), Activity调用顺序如下
AAA –> onPause() –> onStop() –> onDestroy()
(4)在Activity上显示dialog, Activity调用顺序如下
AAA
(5)在父Activity上显示透明的或非全屏的activity,Activity调用顺序如下
AAA –> onFreeze() –> onPause()
(6)设备进入睡眠状态,Activity调用顺序如下
AAA –> onFreeze() –> onPause()
横竖屏切换时候activity的生命周期:
1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次
2、设置Activity的android:configChanges=”orientation”时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
3、设置Activity的android:configChanges=”orientation|keyboardHidden”时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法
- 什么是Activity?Activity的生命周期!
- Activity及Activity的生命周期
- Activity 的生命周期
- Android activity的生命周期
- Activity的生命周期
- Android:Activity的生命周期
- Activity的生命周期
- Activity的生命周期
- Activity的生命周期
- Activity的生命周期
- Activity的生命周期
- Activity的生命周期
- Android Activity的生命周期
- Android Activity的生命周期
- Activity的生命周期一
- Android Activity的生命周期
- Activity的生命周期
- Android activity的生命周期
- 文章标题
- DCM姿态估计算法分析
- 201170215 night js
- 蓝桥杯ALGO-2最大最小公倍数
- [二分图最大匹配] BZOJ1433: [ZJOI2009]假期的宿舍
- Activity的生命周期
- 位运算trick
- IE中CSS3不完全兼容方案
- 数据结构上机测试4.1:二叉树的遍历与应用1
- 【bzoj1901】带修改的区间第k大 主席树+树状数组
- 使用git命令行提交代码到github上报错(一)
- 文章标题
- Oracle sql分页查询(高效)
- -1的二进制表示