activity和task的启动模式有哪些_大数据是需要新处理模式才能具有

activity和task的启动模式有哪些_大数据是需要新处理模式才能具有启动模式singleTask和FLAGACTIVITYNEWTASK具有不同的行为

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

分享一下我老师大神的人工智能教程!零基础,通俗易懂!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_TASKStart 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出了问题?

不知哪位高人能给予解释。

调查还在继续。。。

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/185336.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • [Protel99SE]打印PDF「建议收藏」

    [Protel99SE]打印PDF「建议收藏」写在前面Protel仍然占据着不少工程师的手心,最近在接触一些产品转生产的事宜。从研发拿到一些工程资料后,需要转化出来给生产使用。于是就遇上了将Protel设计文件输出成PDF文件的问题。准备工作想要打印输出PDF文件,最方便的就是装一个PDF打印机。推荐安装Foxit阅读器,自动全安装PDF打印机。之后用任何软件做文档,想输出PDF文件,可以直接调用打印功能,然后打印到Fox

  • android WebView总结

    android WebView总结

    2021年12月17日
  • Linux VI文本编辑器

    Linux VI文本编辑器VI文本编辑器  学会使用vi编辑器是学习Linux系统的必备技术之一,因为一般的Linux服务器是没有GUI界面的,Linux运维及开发人员基本上都是通过命令行的方式进行文本编辑或程序编写的。vi编辑器是Linux内置的文本编辑器,几乎所有的类unix系统中都内置了vi编辑器,而其它编辑器则不一定,另外很多软件会调用vi编辑进行内容编写,例如cront…

  • 网站前端和后台性能优化21

    网站前端和后台性能优化21

  • DOM对象中的常用方法

    DOM对象中的常用方法

  • 使用 MQTTnet 实现 MQTT 通信示例

    使用 MQTTnet 实现 MQTT 通信示例一、什么是MQTT?MQTT(MessageQueuingTelemetryTransport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。MQTT是基于二进制消息的发布/订阅编程模式的消息协议,如今已经成为OASIS规范,由于规范很简单,非常适合需要低功耗和网络带宽有限的IoT场景。二、MQTTnetMQ…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号