Activity生命周期与启动模式笔记
来源:互联网 发布:红米note3怎么内存优化 编辑:程序博客网 时间:2024/06/07 10:54
生命周期
1、有两个Activity A和B,从A跳转到B,然后在B中按返回键,返回A,两者的生命周期变化如下:
2、在Activity A处于running状态时,有电话打入:
这里就需要注意,就存在两种情形,如果来电提醒是以弹窗的形式出来的,如下图:
此时Activity A还处于可见状态,其生命周期如下:注意是在接听电话后,不是在弹窗弹出时,弹窗弹出时是没有反应的,可能跟具体的系统有关。
接听电话后跳转到通话界面:onPause挂断电话后返回Activity A:onResume
但是如果像下面这种,来电提醒是以一个新的界面形式出现的,如下图:
此时Activity A处于不可见状态了,其生命周期如下:
由于来电从Activity A跳转到了来电提醒界面:onPause -> onStop挂断电话或者结束通话后返回Activity A:onRestart -> onStart -> onResume
3、在Activity A处于running状态时点击电源按钮熄屏再唤醒屏幕回到A,或者按下home键回到桌面再返回A,其生命周期都如下所示:
(1)onPause -> onStop(2)onRestart -> onStart -> onResume
4、未设置Activity A的属性,从竖屏状态转为横屏状态时,然后再转换为竖屏状态:
android:screenOrientation="portrait" //只竖屏android:screenOrientation="landscape" //只横屏android:configChanges="orientation|keyboardHidden"(跟踪framework层代码,是由于google在android3.2中添加了screensize改变的通知,在转屏的时候,不仅是orientation发生了改变,screensize同样也发生了改变所以要添加“screenSize”)
启动模式
使用android:launchMode=”standard|singleInstance|singleTask|singleTop”来控制Acivity任务栈,改变Activity的启动模式。其中,具体的模式内容请参阅彻底弄懂Activity四大启动模式
任务栈是一种后进先出的结构。位于栈顶的Activity处于焦点状态,当按下back按钮的时候,栈内的Activity会一个一个的出栈,并且调用其onDestory()方法。如果栈内没有Activity,那么系统就会回收这个栈,每个APP默认只有一个栈,以APP的包名来命名.
standard : 标准模式,每次启动Activity都会创建一个新的Activity实例,并且将其压入任务栈栈顶,而不管这个Activity是否已经存在。Activity的启动三回调(onCreate()->onStart()->onResume())都会执行。
singleTop : 栈顶复用模式.这种模式下,如果新Activity已经位于任务栈的栈顶,那么此Activity不会被重新创建,所以它的启动三回调就不会执行,同时Activity的onNewIntent()方法会被回调.如果Activity已经存在但是不在栈顶,那么作用与standard模式一样.
singleTask: 栈内复用模式.创建这样的Activity的时候,系统会先确认它所需任务栈已经创建,否则先创建任务栈.然后放入Activity,如果栈中已经有一个Activity实例,那么这个Activity就会被调到栈顶,onNewIntent(),并且singleTask会清理在当前Activity上面的所有Activity.(clear top)
singleInstance : 加强版的singleTask模式,这种模式的Activity只能单独位于一个任务栈内,由于栈内复用的特性,后续请求均不会创建新的Activity,除非这个独特的任务栈被系统销毁了
Activity的堆栈管理以ActivityRecord为单位,所有的ActivityRecord都放在一个List里面.可以认为一个ActivityRecord就是一个Activity栈
- Activity生命周期与启动模式笔记
- Activity生命周期与启动模式
- Activity 生命周期与启动模式
- Activity生命周期与启动模式
- 1.Activity的生命周期与启动模式
- Android Activity生命周期与启动模式
- Activity 生命周期与启动模式 详解
- Android Activity生命周期与启动模式
- Activity的生命周期与启动模式
- Activity的生命周期与启动模式
- 关于Activity的生命周期与启动模式
- Activity生命周期与启动模式基础知识备忘录
- Android-Activity的生命周期与启动模式
- Activity的生命周期与启动模式
- Android学习笔记之Activity的生命周期和启动模式
- Android笔记:Activity的生命周期以及启动模式
- 第1章 Activity的生命周期和启动模式笔记
- android笔记之activity生命周期和启动模式
- ORACLE自动扩展表空间添加数据文件
- IntelliJ IDEA 2017 提示“Unmapped Spring configuration files found.Please configure Spring facet.”解决办法
- FPGA中对竞争冒险问题的研究(转)
- 使用python对登录密码爆破
- 中文分词技术概要
- Activity生命周期与启动模式笔记
- 2017服务外包创新创业大赛感想
- Android TextView的跑马灯效果以及TextView的部分属性
- 什么是面向对象思想
- 注释驱动的 Spring cache 缓存介绍
- 167. Two Sum II
- Maven相关名词、概念-解释总结
- 发布jar包到Maven中央仓库
- ==Tomcat的坑==【eclipse下面 “绿色进度条”一直在闪时,这时就重启 eclipse!!!!】这时候运行项目出不来!(代码没错)