分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
官方文档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
Start the activity in a new task. If a task is already running for the activity you are now starting, that task is brought to the foreground with its last state restored and the activity receives the new intent in
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出了问题? 不知哪位高人能给予解释。 调查还在继续。。。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/185336.html原文链接:https://javaforall.cn
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有