对Android任务栈的理解(很乱,只是随便记下我的总结)
来源:互联网 发布:房地产网络推广职责 编辑:程序博客网 时间:2024/04/25 22:01
1.启动任务栈
第一种,动作设置为“android.intent.action.MAIN”,类别设置为“android.intent.category.LAUNCHER”,
可以使这个ACT(activity)实例称为一个任务栈的入口,拥有这种类型的intent-filter的ACT类型的图
表和名字也会显示在application launcher中。
第二种,即是采用用“singleInstance”模式,另外开个一个唯一ACT的栈,
提示:如果“singleInstance”模式同时还加上上面的类型,则当前ACT也是一个单独ACT的任务栈,而应用其他ACT会组成另外一个任务栈
2.启动模式
<activity>标签的launchMode属性可以设置为四种不同的模式:
“standard” :(默认模式)反复创建新实例,如A-B-A-C-D-B-A…依次随便加
“singleTop” : 避免出现类似A-B-C-D-D…,如D采用"singleTop",则是A-B-C-D
“singleTask”: 如A采用"singleTask",则在“standard”中类似A-B-C-D-A任务栈,在“singleTask”只会剩下A,BCD都会被回收
“singleInstance” : 此模式你另外开个一个任务栈,且单独只有一个ACT
3.清理任务栈
默认:如果一个任务栈在很长的一段时间都被用户保持在后台的,那么系统就会将这个任务栈中除了根ACT以外的
其它所有ACT全部清除掉。当用户再将任务栈切换到前台,则只能显示根activity了。
1)alwaysRetainTaskState属性
如果将根ACT的alwaysRetainTaskState属性设置为“true”,则即便一个任务栈在很长的一段时间都被用户
保持在后台的,系统也不会对这个任务栈进行清理。
2)clearTaskOnLaunch属性
如果将根ACT的clearTaskOnLaunch属性设置为“true”,那么只有这个任务栈切换到了后台,那么系统就会
将这个任务栈中除了根ACT以外的其它所有ACT全部清除掉。即和alwaysRetainTaskState的行为完全相反。
3) finishOnTaskLaunch属性
这个属性的行为类似于clearTaskOnLaunch,但是此属性作用于单个的ACT对象,而不是整个任务栈。当这个
任务栈切换到了后台,这个属性可以使任务栈清理包括根ACT在内的任何ACT对象。
4.还复杂点可以加入亲属关系taskAffinity
总结:简单的说,即是开一个(或几个)任务栈,在每个任务栈上添加ACT,遇到“singleTask”的则回到之前存在的ACT,把夹在中间的ACT全部回收
- 对Android任务栈的理解(很乱,只是随便记下我的总结)
- 只是记下这个“理解矩阵”的link
- 【转载】我只是随便说说的即时通讯
- 我对Android的理解
- 我对Android的理解
- 我对Android的理解
- 领导说我对任务的理解是错的
- 我对cocos2dx的理解和总结
- 我对BFC的理解与总结
- 关于UML的一些随便乱想
- Android之我对handler的理解
- 我对android中Activity的理解
- 我对Android 加载器的理解
- 记下我夭折的梦
- 记下我的程序人生
- 很乱,随便写写
- 对任务就虚表的理解
- 对任务堆栈的理解
- WebService服务器端获取调用端的URL用于认证或者安全校验
- JSP配置
- Expect 教程中文版
- “是”红色显示,否不予改变
- MFC向导制作心得
- 对Android任务栈的理解(很乱,只是随便记下我的总结)
- 心得笔记【4】
- 养成良好的编程习惯
- 对程序员的忠告
- iphone 真机器log
- XML编程
- 关于JSON
- Windows CE 触摸屏(TouchPanel)驱动简析(2)-DDSI函数
- android 点亮屏幕和屏幕解锁