Activity之launchMode:singleTop,singleTask与singleInstance
相关内容,可以参见官方网址:
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在系统中,还是会存在多个的现象。
而singleTask和singleInstance,在整个系统中,仅会有一个对象存在,以节省内存开销。
如果运行模式不是默认的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相关推荐
- standard、singleTop、singleTask和singleInstance四种Activity启动模式的理解
之前自学android的时候,单从视频和书本上对这四种启动模式仅仅有了初步的字面上的理解.最近实战了下,也对这四种启动模式有了比较清晰的概念. 首先说下什么是Activity,按照我的理解,我们在手机 ...
- standard、singleTop、singleTask和singleInstance原理分析
关键函数入口:startActivityUncheckedLocked 我们知道启动一个Activity有四种方式:standard(标准启动模式).singleTop.singleTask.si ...
- Android Activity的launchMode四种启动模式备忘
Android Activity的launchMode四种启动模式备忘 Android的Activity的启动模式有四种,在AndroidManifest.xml通过配置Activity的androi ...
- Activity的launchMode和任务栈小结
对Activity的launchMode的理解一直没有好好总结下,这两天系统总结下launchMode的使用方法: Activity的launchMode属性决定了Activity和应用程序当前任务栈 ...
- Activity的LaunchMode和taskAffinity
Thanks to:http://www.cnblogs.com/SteveMing/archive/2012/04/24/2459575.html [原]Activity的LaunchMode和ta ...
- Activity的launchMode启动模式 day7
2019独角兽企业重金招聘Python工程师标准>>> Activity的launchMode day7 在功能清单AndroidManifest.xml 里 设置 启动模式 如: ...
- android LaunchMode之SingleTask
2019独角兽企业重金招聘Python工程师标准>>> 昨天看了一下SingleTask的LaunchMode,意思是说如果一个Activity在Manifest文件中的Launch ...
- 【Android】SingleTask与SingleInstance的区别
现有2个项目,taskA.taskB.taskA负责调用taskB中指定的界面. taskB中有3个界面,a.b.c,每个界面显示它所在的task id. SingleTask: 其中b界面被声明为S ...
- SingleTask和SingleInstance详解
SingleTask(FLAG_ACTIVITY_NEW_TASK): 如图,有两个Application A 和 B.其中B中的activity b为SingleTask.首先启动B,在activi ...
最新文章
- python使用matplotlib可视化3D柱状图(3D histogram、三维柱状图、包含三个坐标轴x、y、z)、设置zdir参数为z、改变3d图观察的角度
- 《几何与代数导引》例2.6
- Android makefile编译流程(二)
- zblog php版调用代码,zblogphp调用指定单篇文章代码升级版
- ajax中async_小猿圈web前端之ajax的同步和异步有怎样的区别?
- 子进程会继承父进程的哪些内容_【学习教程】Node.js创建子进程方法
- oracle数据导入到python,Python导入oracle数据的方法 -电脑资料
- visual studio installer可以卸载吗_技术帖 | 这些宝藏软件你安装了吗?
- 智慧乡村建设不可照搬城市模式
- Thymeleaf 用法
- BZOJ3997 TJOI2015组合数学(动态规划)
- ftdi usb转串口驱动
- 关闭135端口rpcss服务
- 根据人民币大写规则写的java工具类
- 用R写一个迷宫小游戏
- 计算机打字正确姿势,电脑快速打字方法教程
- PyTorch强化:01.PyTorch 数据加载和处理
- 最好玩的steam游戏例举,看看都有那些?
- mysql执行sql文件
- airpods麦克风测试软件,苹果AirPods新维修工具上线 可区分是污垢堵塞还是故障
热门文章
- 天呐!你知道MSBuild都干了些什么
- .NET MAUI 预览版 6 发布
- 在 .NET 6 Preview 3 ASP.NET Core 更新
- Azure 静态 web 应用集成 Azure 函数 API
- asp.net core监控—引入Prometheus(二)
- C# 9 Lambda 小幅升级
- Blazor WebAssembly 3.2 正式发布
- 解析“60k”大佬的19道C#面试题(下)
- .NET Core 3.0之深入源码理解ObjectPool(一)
- 基于ASP.NET Core的模块化设计: 虚拟文件系统