2019独角兽企业重金招聘Python工程师标准>>>

昨天看了一下SingleTask的LaunchMode,意思是说如果一个Activity在Manifest文件中的LaunchMode设置为SingleTask时,该Activity就在一个独立的Task中。当时看了文档之后,有点不明白的是“在一个独立的task中”如何理解?

其实,这句话的意思是保证这个activity处于"某一个"task中,而不管当前task中是否有其他activity(这也许就是与SingleInstance的根本区别吧)。例如,我们有Root Activity A,在A中启动了ActivityB(launch mode是sinleTask)。这时Application Task的stack是B A,如果我们回到Home,启动另一个Application的Activity C,如果在C中启动B,则系统会将之前的Task Stack放到前台。这时用户看到的就是B。当按back时返回的是B的前一个Activity A.再back时退出前一个stack,回到当前的stack,即C。

考虑另一种情况,B依旧是SingleTask的. 在一个Application的Task Stack中有C B A,然后在另一个Application中启动B。这时会发生什么?

答案是:系统会把前一个Task放到前台,但是它的stack已经变成B A,C已经被系统丢弃了。

总结:1、SingleTask的Activity只能在一个Task中,系统总是能找到一个已经存在的Activity;

2、当在其他app中调用(或者在同一个activity stack中调用)某个singleTask的Activity时,需要注意:系统会把这个Activity之上的activity都清空,并将它所在的Task Stack置于前台,可能会导致其他APP的状态丢失。例如activity statck有两个SingleTask的B A,如果从B切换到A,则B会从栈顶清除,只剩下A。

补充一下singleInstance的感受:

single instance有点像single task,它总是一个activity占据一个task stack。在同一个app中,A->B,会有两个stack,B在前,A在后,如果此时B->C,会出现以下情况:

C

A      B

如果退出C,返回到A,退出A,返回到B

如果是在其他的app中X-B

B  X

如果此时再B->C,则会出现如下:

C B X

返回时依次显示。

adb shell dumpsys activity查看task stack.

最后:推荐某个做出实验的blog http://blog.csdn.net/liuhe688/article/details/6754323

转载于:https://my.oschina.net/kingguary/blog/36120

android LaunchMode之SingleTask相关推荐

  1. Android 监听home键(android:launchMode=singleTask 与 onNewIntent(Intent intent) 的用法

    android:launchMode="singleTask" 和 onNewIntent(Intent intent)两个特性,现总结一下经验: android:launchMo ...

  2. Android之用SingleTask和TaskAffinity解决手机截取的项目启动页面问题

    今天做的远程截屏功能,服务端发一个命令下来,然后客户端截屏,截屏的代码已经写好,因为是跨进程通信的,我最后采取的办法是启动activity来实现的,但是问题来了,如果用户没有登录的情况下,可以截屏到任 ...

  3. android:launchMode的四种方式

    Activity一共有以下四种launchMode: standard singleTop singleTask singleInstance 1.standard standard模式是默认的启动模 ...

  4. android launchmode java代码,java – Android:launchMode = SingleTask问题

    如果你的其他活动在 Android中正常宣布活动默认值,那么回到你的应用程序应该带你到你离开的同一个活动(使用硬件主页按钮) 但请记住,Android系统在需要系统资源时会杀死应用程序.因此,当您转到 ...

  5. android launchmode singleinstance问题

    问题描述 最近测试关于launchmode的四种方式 默认模式 top singletask 都已经了解了 唯独这个instance模式 我的问题是 我们只作2个activity的假设A和B,其中A为 ...

  6. Android LaunchMode

    source code :https://github.com/fantasyRqg/MytestApp/tree/AndroidLaunchModeTest 以下文字摘自 Tasks and Bac ...

  7. Android中Activity启动模式详解

    在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启动模式决定了Activity的启动运行方式. An ...

  8. Android Studio学习#2

    活动的生命周期和启动 实验目的 实验内容 实验步骤 一.新建Activity并初始化 二.尝试初运行并添加对话回显 三.在活动间切换&调试 四.验证系统可能自行对活动运行onDestroy 五 ...

  9. Android悬浮窗口-画中画功能

    效果展示 前言 从 Android 8.0(API 级别 26)开始,Android 允许活动以画中画 (PiP) 模式启动.PiP 是一种特殊类型的多窗口模式,主要用于视频播放.它允许用户在固定在屏 ...

最新文章

  1. 对软件工程与计算机科学之间区别的看法
  2. KLayout 软件使用崩溃
  3. 全球及中国矢量超导磁体行业“十四五”竞争状况及投资前景策略分析报告2021-2027年版
  4. 【uniapp】 class表达式
  5. python列表解析式如何使用_python列表解析式,生成器,及部分内建函数使用方法...
  6. MySQL(10)数据库实现高可用架构之MHA
  7. 数论六之计算几何干货——计算几何模板解释全集 及 模板检验训练场
  8. JavaScript 数组你都掰扯不明白,还敢说精通 JavaScript ?| 赠书
  9. codeforces B. Design Tutorial: Learn from Life
  10. Openlayer4 - 最好最强大的开源地图引擎
  11. 飞步神速!何晓飞团队完成无人车深度学习芯片流片,算力创国内新高
  12. Android中的动画详解系列【2】——飞舞的蝴蝶
  13. 夯实Java基础(八)——代码块
  14. 使用ASP.NET Global.asax 文件(转)
  15. TouchVG 支持 CocoaPods 了!
  16. 百度SEO站群PTCMS全自动采集小说网站源码
  17. Python常用模块之 json模块
  18. 通俗的理解:什么是编程语言?
  19. english need study and insist 1
  20. 7、高德地图(定位、复位功能)

热门文章

  1. dword类型和十进制有什么区别_微信小商店有几种类型,有什么区别?
  2. 什么是PCB板上的鼠牙洞?
  3. 智能车竞赛线上比赛部分镜头
  4. 2021年春季学期-信号与系统-第十三次作业参考答案-第一小题
  5. 2021-春季学习-智能车技术创新与实践(90)
  6. installshield 安装文件属性的原始文件名 如何修改_iPhone修改微信提示音,iOS12可用,无需越狱详细教程...
  7. 计算机类东北大学和大连理工,东北大学VS大连理工大学,谁才是第一,辽宁本地考生也两难...
  8. fileoutputstream路径 android,Android编程中FileOutputStream与openFileOutput()的区别分析
  9. ibm750服务器维护,IBM 750服务器.PDF
  10. css label 居中布局_HTMLCSS精华知识点——表单元素、BFC、两栏布局、居中总结等...