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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Springboot启动报错[ main] o.s.boot.SpringApplication: Application run failed(佷有可能是版本问题)

    Springboot启动报错[ main] o.s.boot.SpringApplication: Application run failed(佷有可能是版本问题)前言:本人小白一枚,最近在自学JAVA时遇到了一个小问题,在网上求解无果后,自己找到了原因,这里跟大家分享一下。开发环境:Win10;IntelliJIDEA2021.3.2版本信息:Java\jdk-17.0.2;apache-maven-3.8.4-bin;springboot2.3.4编程目的:本人之前对JAVA一窍不通,最近在自学JAVA时想要用JAVA,Springboot和maven搭建一个最基础的helloworld程序。报错信息:ERROR后面显示“o.s.boot.

    2022年9月8日
    3
  • pycharm2021.2激活方法破解方法[通俗易懂]

    pycharm2021.2激活方法破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    382
  • oracle date_trunc_oracle中truncate用法

    oracle date_trunc_oracle中truncate用法PostgreSQL与Oracle对应的函数一、对应的函数1.sysdateoraclepgsqlsysdatecurrent_date、current_timestampnvlcoalescetruncdate_trunc(text,timestamp)…文章rayner2018-01-05842浏览量Oracle日期显示问题以及trunc方法的使用我们先来假设这么一个场景,只要输入一个…

    2025年7月25日
    3
  • DWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)异常启动tomcat的web程序时会先弹出javaw.exe「建议收藏」

    DWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)异常启动tomcat的web程序时会先弹出javaw.exe「建议收藏」DWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)异常启动tomcat的web程序时会先弹出javaw.exe

    2022年4月23日
    100
  • murmurhash算法_自我介绍的方式

    murmurhash算法_自我介绍的方式加密哈希和非加密哈希-MM是非加密哈希首先了解下加密哈希和非加密哈希,加密哈希函数旨在保证安全性,很难找到碰撞。即:给定的散列h很难找到的消息m;很难找到产生相同的哈希值的消息m1和m2。非加密哈希函数只是试图避免非恶意输入的冲突。作为较弱担保的交换,它们通常更快。如果数据量小,或者不太在意哈希碰撞的频率,甚至可以选择生成哈希值小的哈希算法,占用更小的空间。Smhasher-评价哈希算法的…

    2022年10月9日
    2
  • Python数据类型有哪些,哪些是可变类型,哪些是不可变类型?

    Python数据类型有哪些,哪些是可变类型,哪些是不可变类型?Python数据类型有哪些,哪些是可变类型,哪些是不可变类型?类型:整数int字符串str浮点数float布尔型bool列表list字典dict集合set元组tuple可变类型:就是这个数据类型的值在不改变这一块内存空间,而去改变这个数据类型的值。1.列表2.字典3.集合不可变类型:当改变值得时候,会申请一块新的内存空间,不再是原来的那一块内存空间了。整数字符串浮点数布尔型元组…

    2022年6月10日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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