前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >android任务栈

android任务栈

作者头像
xiangzhihong
发布2018-01-29 16:25:31
1K0
发布2018-01-29 16:25:31
举报
文章被收录于专栏:向治洪向治洪

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全部回收

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014-06-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档