启动模式"singleTask"和FLAG_ACTIVITY_NEW_TASK具有不同的行为!
来源:互联网 发布:ie无法打开淘宝网 编辑:程序博客网 时间:2024/04/30 11:39
官方文档task and back stack一文,地址:http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html
提到定义启动模式有两种方法,一个是在manifest文件中定义,另一个用intent设置flag。
前一种方法有android的四大启动模式,其中就有“singleTask”:以此种模式启动的activity例如activityA会在一个新task栈中的根部启动,而且此栈可以加入新的activity。当在其他activity中要启动activityA时,如果有activityA实例存在,就会把其抬到前台而不去启动新的activityA。
后一种方法有好多flag,其中文档中说与“singleTask”行为相似的是FLAG_ACTIVITY_NEW_TASK:
FLAG_ACTIVITY_NEW_TASK
onNewIntent()
.This produces the same behavior as the "singleTask"
launchMode
value, discussed in the previous section.
但事实是这样的吗?
我实验了一天,结论如下:
一、实验中“singleTask”的行为:有如下几个activity A、B、C,B的启动模式是singleTask,A启动B,B启动C,C再启动B。
结果是C被销毁掉,B到前台。此时剩下两个activity,A和B。用adb shell dumpsys activity来看,
Run #3: HistoryRecord{406954f0 com.linc.TestBackStack/.ActivityB}
Run #2: HistoryRecord{4065f880 com.linc.TestBackStack/.ActivityA}
二、实验中FLAG_ACTIVITY_NEW_TASK的行为(环境同上):
A中启动B,intent设置flag FLAG_ACTIVITY_NEW_TASK,B启动C,C再启动B。
B被抬到前台,而没有发现C被销毁。
用adb shell dumpsys activity来看,
Run #5: HistoryRecord{407c28c8 com.linc.TestBackStack/.ActivityB}
Run #4: HistoryRecord{406c0b48 com.linc.TestBackStack/.ActivityC}
Run #3: HistoryRecord{406ec298 com.linc.TestBackStack/.ActivityB}
Run #2: HistoryRecord{406cedb8 com.linc.TestBackStack/.ActivityA}用BACK键可以从B退到C,再次按BACK键,没有反应,无响应。
出现这种情况,文档描述和实际不符,二中的B有两个?是dumpsys出了问题?
不知哪位高人能给予解释。
调查还在继续。。。
- 启动模式"singleTask"和FLAG_ACTIVITY_NEW_TASK具有不同的行为!
- 启动模式:singleTask 不是 Intent.FLAG_ACTIVITY_NEW_TASK!
- FLAG_ACTIVITY_NEW_TASK和singleTask一起使用的意义
- Android SingleTask 和 SingleInstance 的理解 以及 FLAG_ACTIVITY_NEW_TASK
- singleTask和singleInstance启动模式
- "singleTask"启动模式的特点
- 使用singletask的启动模式
- Activity的启动模式singleTask
- Activity的四种启动模式-SingleTask和SingleInstance
- android-activity之默认启动模式和FLAG_ACTIVITY_NEW_TASK
- "singleTask"启动模式的Activity的特点
- 关于activity的singletask启动模式记录
- Activity启动模式singleTask的理解
- Android初学习 - FLAG_ACTIVITY_NEW_TASK和singleTask一起使用
- 安卓Activity 跳转的标记深度思考FLAG_ACTIVITY_NEW_TASK,singleTask
- <Activity>的启动模式 之(二)SingleTask模式
- [Android教学区] 138. singleTask和singleInstance启动模式
- 探究startActivityForResult在singleTop和singleTask启动模式讨论
- 2011-9-22 15:41:21
- 网上购物要小心
- linux+nginx+tomcat负载均衡,实现session同步
- 《计算机图形学》实验一:利用OpenGL实现直线光栅化的DDA算法
- 转:解析json文件
- 启动模式"singleTask"和FLAG_ACTIVITY_NEW_TASK具有不同的行为!
- 文字走马灯效果
- Code::Blocks使用pc-lint
- 寄存器
- Good habit to read something every night The linux command line
- 进程&线程&死锁
- 黑马程序员_泛型总结(一个苹果是水果,一箱苹果不是水果)
- 机器学习经典书籍、顶级会议和杂志
- input文本框只允许输入数字代码三则