Activity启动模式解析
2016-07-22 15:28
246 查看
Activity启动模式:4种
1.standard
2.singleTop
3.singleTask
4.singleInstance
我们可以在AndroidManifest.xml配置<activity>的android:launchMode属性为以上四种之一即可。
1、对于使用standard 模式的活动,系统不会在乎这个活动是否已经在返回栈中存在,每次启动都会创建该活动的一个新的实例。
例如A启动A,A再接着启动A,A继续启动A,然后再分别出栈,如图所示
2、当活动的启动模式指定为 singleTop,在启动活动时如果发现返回栈的栈顶已经是该活动,则认为可以直接使用它,不会再创建新的活动实例。
3、当活动的启动模式指定为 singleTask,每次启动该活动时系统首先会在返回栈中检查是否存在该活动的实例,如果发现已经存在则直接使用该实例,并把在这个活动之上的所有活动统统出栈,如果没有发现就会创建一个新的活动实例。
4、使用singleInstance 模式就可以解决这个问题,在这种模式下会有一个单独的返回栈来管理这个活动,不管是哪个应用程序来访问这个活动,都共用的同一个返回栈,也就解决了共享活动实例的问题。
假设B启动A,A启动C,其中A的启动模式为singleInstance,则:
返回的页面顺序是C-B-A
转载出处:Android开发中文站 » Activity的四种启动模式-图文并茂
1.standard
2.singleTop
3.singleTask
4.singleInstance
我们可以在AndroidManifest.xml配置<activity>的android:launchMode属性为以上四种之一即可。
1、对于使用standard 模式的活动,系统不会在乎这个活动是否已经在返回栈中存在,每次启动都会创建该活动的一个新的实例。
例如A启动A,A再接着启动A,A继续启动A,然后再分别出栈,如图所示
2、当活动的启动模式指定为 singleTop,在启动活动时如果发现返回栈的栈顶已经是该活动,则认为可以直接使用它,不会再创建新的活动实例。
3、当活动的启动模式指定为 singleTask,每次启动该活动时系统首先会在返回栈中检查是否存在该活动的实例,如果发现已经存在则直接使用该实例,并把在这个活动之上的所有活动统统出栈,如果没有发现就会创建一个新的活动实例。
4、使用singleInstance 模式就可以解决这个问题,在这种模式下会有一个单独的返回栈来管理这个活动,不管是哪个应用程序来访问这个活动,都共用的同一个返回栈,也就解决了共享活动实例的问题。
假设B启动A,A启动C,其中A的启动模式为singleInstance,则:
返回的页面顺序是C-B-A
转载出处:Android开发中文站 » Activity的四种启动模式-图文并茂
相关文章推荐
- 另一篇关于Less的入门文章
- Struts2中json的使用总结
- 杭电5742 之 It's All In The Mind
- linux 操作系统中chgrp命令的使用
- Python 用文件保存游戏(1)
- yii redies 不同的工程缓存key的问题
- 字符串内容逆置(不能使用库函数只能开辟有限个空间)
- Hprof
- golang与PHP输出excel示例
- 红帽6 RHCE&RHCS认证培训笔记(1)
- 集成学习——Bootstrap Bagging AdaBoost算法
- NOI1994 最佳旅游路线 解题报告
- 2016.07.22回顾
- 【HDU-oj】-2124-Repair the Wall(贪心)
- Android基础&进阶--墙裂推荐
- Hibernate中使用HQL进行查询操作
- 动态申请二维数组做矩阵乘法
- js 数组操作
- Java 自动装箱与拆箱(Autoboxing and unboxing)
- C# 编码规范和编程好习惯