Activity的四种加载方式
2016-05-28 16:21
183 查看
配置activity时可指定android:launchMode属性,该属性用于配置改Activity的启动模式。该属性支持以下4个属性值。
standard:标准模式,默认的加载模式
singleTop:Task栈顶单例模式
singleTask:Task内单例模式
singleInstance:全局单例模式
Android采用Task来管理多个Activity,当我们启动一个应用时,Android会为之创建一个Task,然后启动这个应用的入口Activity(即intent-filter中配置MAIN和LAUNCHER的Activity)。
1、standard模式
每次通过这种模式启动Activity时,Android总会为目标创建一个新的实例,并将该Activity添加到当前Task栈中,这汇总模式不会启动新的Task,新的Activity将会被添加到原因有的Task中。
2、singleTop模式
这中模式和standard有点相似,但有一点不同:当将要启动的Activity已经位于Task栈顶时,系统不会重新创建目标Activity实例,而是直接复用已有的Activy实例。
如果要将启动的目标Activy没有位于栈顶,此时系统会重新创建目标Activity实例,并将它加载到Task栈顶,此时与standard模式完全相同。
3、singleTask模式
采用这种加载模式的Activity在同一个Task内只有一个实例,启动目标Activity时,可分为如下三种情况。
(1)、如果将要启动的目标Activity不存在,系统将会创建目标Activity实例,并将它加入到Task栈顶。
(2)、如果将要启动的Activity已经位于Task栈顶,此时与singleTop模式相同。
(3)、如果将要启动的Activity已经存在,但没有位于Task栈顶,系统会把位于该Activity上面所有的Activy移出Task栈,从而使目标Activity转入栈顶。
4、singleInstance模式
系统保证无论哪个Task中启动目标Activity,只会创建一个目标Activity实例,并会使用一个全新的Task栈来加载该Activity实例。
standard:标准模式,默认的加载模式
singleTop:Task栈顶单例模式
singleTask:Task内单例模式
singleInstance:全局单例模式
Android采用Task来管理多个Activity,当我们启动一个应用时,Android会为之创建一个Task,然后启动这个应用的入口Activity(即intent-filter中配置MAIN和LAUNCHER的Activity)。
1、standard模式
每次通过这种模式启动Activity时,Android总会为目标创建一个新的实例,并将该Activity添加到当前Task栈中,这汇总模式不会启动新的Task,新的Activity将会被添加到原因有的Task中。
2、singleTop模式
这中模式和standard有点相似,但有一点不同:当将要启动的Activity已经位于Task栈顶时,系统不会重新创建目标Activity实例,而是直接复用已有的Activy实例。
如果要将启动的目标Activy没有位于栈顶,此时系统会重新创建目标Activity实例,并将它加载到Task栈顶,此时与standard模式完全相同。
3、singleTask模式
采用这种加载模式的Activity在同一个Task内只有一个实例,启动目标Activity时,可分为如下三种情况。
(1)、如果将要启动的目标Activity不存在,系统将会创建目标Activity实例,并将它加入到Task栈顶。
(2)、如果将要启动的Activity已经位于Task栈顶,此时与singleTop模式相同。
(3)、如果将要启动的Activity已经存在,但没有位于Task栈顶,系统会把位于该Activity上面所有的Activy移出Task栈,从而使目标Activity转入栈顶。
4、singleInstance模式
系统保证无论哪个Task中启动目标Activity,只会创建一个目标Activity实例,并会使用一个全新的Task栈来加载该Activity实例。
相关文章推荐
- js和C# 时间日期格式转换的简单实例
- 下拉刷新与加载更多
- 排序总结(总结的非常好)
- R12中注册客户化应用为多组织应用
- IGMP SNOOPING
- HTML5-炫丽的时钟效果Canvas绘图与动画
- nim
- 什么是WebService
- 哈希学习
- 网站xss攻击和防止
- UML建模之时序图(Sequence Diagram)
- 105. Construct Binary Tree from Preorder and Inorder Traversal
- android 网络通信学习
- Ajax动态请求,控制页面显示
- 指针函数和函数指针对比
- 分支管理策略
- JDK_Proxy_InvocationHandler_动态代理
- 改变分隔条,基于数组的ListView
- 用virtualbox安装CentOS 7
- linux系统下开机启动流程