相关内容,可以参见官方网址:

http://developer.android.com/guide/components/tasks-and-back-stack.html

如图所示,如果ABC三个Activity的launchMode都是standard,那么按照图示顺序调用后,堆栈为ABCBB;
而如果界面ActivityB的launchMode为singleTop,同样的调用关系下,堆栈为ABCB,栈顶的B,被复用了。

singleTop模式,适合于与用户交互时保持信息更新的界面Activity,比如联系人的搜索界面界面等;

singleTop仅作为栈顶Activity时才可能被复用,同一个Activity在系统中,还是会存在多个的现象。
singleTasksingleInstance,在整个系统中,仅会有一个对象存在,以节省内存开销。
如果运行模式不是默认的standard模式,那么,该Activity需要重载onNewIntent的函数。
standard和singleTop,对它的调用,不会引起任务切换;而singleTask和singleInstance,则相反。
换句话说,singleTask和singleInstance,其Activity的对象,仅可作为任务的根Activity而存在,
而standard和singleTop,其Activity的对象,则可能存在Activity堆栈的任何位置。

如图所示,当B的运行模式为singleTask和singleInstance时,所有对B的调用,
都会跳转到以B为根的任务中进行,而与调用Activity所在的任务,毫无关联。

singleTask和singleInstance唯一的区别是:
singleInstance,其所在的任务中,包含且只包含一个该Activity的对象,不会再有其他的Activity对象;
而singleTask,其任务中,则可能包含多个其他相关的Activity对象。

singleTask和singleInstance适用于消耗内存较多的单实例界面,比如浏览器和音乐播放器等。

Activity之launchMode:singleTop,singleTask与singleInstance相关推荐

  1. standard、singleTop、singleTask和singleInstance四种Activity启动模式的理解

    之前自学android的时候,单从视频和书本上对这四种启动模式仅仅有了初步的字面上的理解.最近实战了下,也对这四种启动模式有了比较清晰的概念. 首先说下什么是Activity,按照我的理解,我们在手机 ...

  2. standard、singleTop、singleTask和singleInstance原理分析

    关键函数入口:startActivityUncheckedLocked   我们知道启动一个Activity有四种方式:standard(标准启动模式).singleTop.singleTask.si ...

  3. Android Activity的launchMode四种启动模式备忘

    Android Activity的launchMode四种启动模式备忘 Android的Activity的启动模式有四种,在AndroidManifest.xml通过配置Activity的androi ...

  4. Activity的launchMode和任务栈小结

    对Activity的launchMode的理解一直没有好好总结下,这两天系统总结下launchMode的使用方法: Activity的launchMode属性决定了Activity和应用程序当前任务栈 ...

  5. Activity的LaunchMode和taskAffinity

    Thanks to:http://www.cnblogs.com/SteveMing/archive/2012/04/24/2459575.html [原]Activity的LaunchMode和ta ...

  6. Activity的launchMode启动模式 day7

    2019独角兽企业重金招聘Python工程师标准>>> Activity的launchMode day7 在功能清单AndroidManifest.xml 里 设置 启动模式 如: ...

  7. android LaunchMode之SingleTask

    2019独角兽企业重金招聘Python工程师标准>>> 昨天看了一下SingleTask的LaunchMode,意思是说如果一个Activity在Manifest文件中的Launch ...

  8. 【Android】SingleTask与SingleInstance的区别

    现有2个项目,taskA.taskB.taskA负责调用taskB中指定的界面. taskB中有3个界面,a.b.c,每个界面显示它所在的task id. SingleTask: 其中b界面被声明为S ...

  9. SingleTask和SingleInstance详解

    SingleTask(FLAG_ACTIVITY_NEW_TASK): 如图,有两个Application A 和 B.其中B中的activity b为SingleTask.首先启动B,在activi ...

最新文章

  1. python使用matplotlib可视化3D柱状图(3D histogram、三维柱状图、包含三个坐标轴x、y、z)、设置zdir参数为z、改变3d图观察的角度
  2. 《几何与代数导引》例2.6
  3. Android makefile编译流程(二)
  4. zblog php版调用代码,zblogphp调用指定单篇文章代码升级版
  5. ajax中async_小猿圈web前端之ajax的同步和异步有怎样的区别?
  6. 子进程会继承父进程的哪些内容_【学习教程】Node.js创建子进程方法
  7. oracle数据导入到python,Python导入oracle数据的方法 -电脑资料
  8. visual studio installer可以卸载吗_技术帖 | 这些宝藏软件你安装了吗?
  9. 智慧乡村建设不可照搬城市模式
  10. Thymeleaf 用法
  11. BZOJ3997 TJOI2015组合数学(动态规划)
  12. ftdi usb转串口驱动
  13. 关闭135端口rpcss服务
  14. 根据人民币大写规则写的java工具类
  15. 用R写一个迷宫小游戏
  16. 计算机打字正确姿势,电脑快速打字方法教程
  17. PyTorch强化:01.PyTorch 数据加载和处理
  18. 最好玩的steam游戏例举,看看都有那些?
  19. mysql执行sql文件
  20. airpods麦克风测试软件,苹果AirPods新维修工具上线 可区分是污垢堵塞还是故障

热门文章

  1. 天呐!你知道MSBuild都干了些什么
  2. .NET MAUI 预览版 6 发布
  3. 在 .NET 6 Preview 3 ASP.NET Core 更新
  4. Azure 静态 web 应用集成 Azure 函数 API
  5. asp.net core监控—引入Prometheus(二)
  6. C# 9 Lambda 小幅升级
  7. Blazor WebAssembly 3.2 正式发布
  8. 解析“60k”大佬的19道C#面试题(下)
  9. .NET Core 3.0之深入源码理解ObjectPool(一)
  10. 基于ASP.NET Core的模块化设计: 虚拟文件系统