Activity四种启动模式
来源:互联网 发布:贵金属交易软件 编辑:程序博客网 时间:2024/06/07 15:26
Activity启动模式一共有四种,分别是standard(标准模式)、SingleTop(栈顶复用模式)、SingleTask(栈内复用模式)、SingleInstance(单实例模式即加强版的SingleTask,独自占用一个任务栈)
Activity启动模式的指定一共有两种方式,一种是直接在配置文件里指定,另一种是通过Intent的flag标志指定
默认是standard模式:每次启动都会创建新的实例
SingleTop栈顶复用模式:如果要启动的Activity位于栈顶则不会创建新的实例,而是调用onNewIntent方法
SingleTask栈内复用模式:系统首先会查找它所想要的任务栈是否存在,
1、存在:则查看该任务栈中是否存在它的实例,
1)如果存在就会把它之上的Activity弹出而保证它在栈顶,对应的onNewIntent方法会被执行,
2)如果不存在则创建其实例压入栈内
2.不存在:创建需要的任务栈,创建其实例压入栈内
SingleInstace单实例模式即加强版的SingleTask,独自占用一个任务栈
上面提到的所想要的任务栈指的是通过TaskAffinity指定的,默认情况下任务栈为包名,如果要指定的话必须与包名不一致
TaskAffinity属性主要和SingleTask启动模式及allowTaskReparenting属性配对使用
和allowTaskReparenting结合的时候:应用A启动了应用B的一个Activity,如果此Acitivity的属性allowTaskReparenting为true的话,当B应用被启动时,此Acitivity会从应用A的任务栈转移到应用B的任务栈。
allowTaskReparenting的官方定义是“Whether or not the activity can move from the task that started it to the task it has an afinity for when that task is next brought to the front — "true
" if it can move, and "false
" if it must remain with the task where it started.”
翻译:决定一个Activity是否能从开启它的任务栈转移到TaskAffinity属性所指定的任务栈中,指定为true的话可以转移,false的话只能待在开启它的任务栈中即不能转移
但是实际检验的时候不管是true还是false都可以转移,这是为什么呢?希望知道的大神解释一下,
- Activity四种启动模式
- activity四种启动模式
- activity四种启动模式
- Activity四种启动模式
- Activity四种启动模式
- Activity四种启动模式
- Activity四种启动模式
- Activity四种启动模式
- Activity四种启动模式
- Activity四种启动模式
- Activity四种启动模式
- Activity四种启动模式
- Activity四种启动模式
- Activity四种启动模式
- Activity四种启动模式
- Activity 四种启动模式
- Activity四种启动模式
- Activity四种启动模式
- qt5.8中关于mysql5.5数据库连接问题
- Shell---条件判断、参数
- Python:Caffe均值文件mean.binaryproto转mean.npy
- Kali应用及渗透测试
- [deeplearning-004] 一般形式的反向传导算法BP最简推导-2
- Activity四种启动模式
- 递归累计求和
- 深入理解哈希表
- 剑指offer-64题 滑动窗口的最大值
- 安卓的基础介绍
- java web读取显示图片
- Linux 基础命令(十三)—— SHELL脚本编程进阶(二)
- ISO2626学习笔记
- JavaWeb学习心得之session