Activity的四种启动模式(LaunchMode)
2015-09-08 23:35
393 查看
Activity一个有4种启动模式,分别是:standard、singleTop、singleTask、singleInstance。
这4种启动模式可以在AndroidManifest.xml文件中的<activity>标签下的android:launchMode 属性进行设置。
Activity栈是一个后进先出的列表,用于保存要启动的Activity实例。
1.standard
standard是Activity默认的启动模式,每次启动Activity时,都会创建一个新的Activity实例,并加入到栈顶。
2.singleTop
如果要启动的Activity实例没有在栈顶,则会创建新的Activity实例并加入到栈顶,如果要创建的Activity已经在栈顶了,则不会重新创建新的实例,会使用当前栈顶相同的实例并会触发onNewIntent方法。
3.singleTask
使用singleTask启动模式时,分为两种情况:
(1)启动的Activity实例不存在:创建新的Activity实例并加入栈顶。
(2)启动的Activity实例已存在栈中:不创建新的Activity实例,只需要把该Activity之上的其他Activity弹出(pop),保持该Activity处于栈顶。
4.singleInstance
只允许一个实例存在,每次调用时都会使用同一个实例引用。
这4种启动模式可以在AndroidManifest.xml文件中的<activity>标签下的android:launchMode 属性进行设置。
Activity栈是一个后进先出的列表,用于保存要启动的Activity实例。
1.standard
standard是Activity默认的启动模式,每次启动Activity时,都会创建一个新的Activity实例,并加入到栈顶。
2.singleTop
如果要启动的Activity实例没有在栈顶,则会创建新的Activity实例并加入到栈顶,如果要创建的Activity已经在栈顶了,则不会重新创建新的实例,会使用当前栈顶相同的实例并会触发onNewIntent方法。
3.singleTask
使用singleTask启动模式时,分为两种情况:
(1)启动的Activity实例不存在:创建新的Activity实例并加入栈顶。
(2)启动的Activity实例已存在栈中:不创建新的Activity实例,只需要把该Activity之上的其他Activity弹出(pop),保持该Activity处于栈顶。
4.singleInstance
只允许一个实例存在,每次调用时都会使用同一个实例引用。
相关文章推荐
- ubuntu下安装telnet功能
- poj 1080 Human Gene Functions
- 在Python中建立N维数组并赋初值
- Assembly.Load,系统找不到指定的文件
- iOS分页控制器
- iOS-QQ好友列表实现
- 关于 const char* p , char const* p 以及 char * const p
- PS简介
- 什么迷茫不迷茫?不过是才华配不上梦想
- 用“MEAN”技术栈开发web应用(一)AngularJs前端架构
- 布局文件中的某个标签引起的问题
- HashSet集合存储自定义对象细节
- 中文分词
- 用“MEAN”技术栈开发web应用(一)AngularJs前端架构
- uva12186 Another Crisis
- C++ 奇葩的空语句
- 關於時間的考慮
- 某银行网银代发工资无法操作问题解决
- 学习《算法导论》第十一章 散列表 总结二
- hdoj 4786 Fibonacci Tree 【最小生成树&&最大生成树】