Android Activity的LaunchMode
2015-10-20 18:39
330 查看
一共有四种模式:
standard
SingleTop
SingleTask
SingleInstance
启动模式,顾名思义就是说你在启动Activity的时候会有不同。(不同地方为 是否新建立实例 是否放在一个新的栈里)
是否创建新的实例是 否放在新的栈里
standard 任何时候启动都创建新的Activity的实例 还是放在应用启动时原来的栈里
singletop 创建时,看栈顶是不是要创建的的栈,如果是,就 还是放在应用启动时原来的栈里
不创建新的实例,直接引用,如果不是,那就创建
新的实例。
singletask 创建时,检测整个栈里是否有要创建的栈,如果有, 还是放在应用启动时原来的栈里
把这个栈里要启动的实例放在栈顶,原来的activity
全部销毁。
singleinstance 创建时,看整个系统里有没有一个栈只有这么一个实例的。 在一个新的栈里。
有的话,直接引用,没有的话创建一个新的栈放置这个
Activity且只有这个。
设置启动模式可以有两种办法,一在manifest.xml 的<Activity></Activity>标签里设置,而是根据intent的flag来进行设置。intent的flag有 Intent.FLAG_ACTIVITY_NEW_TASK
FLAG_ACTIVITY_SINGLE_TOP ,FLAG_ACTIVITY_CLEAR_TOP,FLAG_ACTIVITY_NO_HISTORY
(貌似没咋用过,面试一直问,蛋疼、、、)
standard
SingleTop
SingleTask
SingleInstance
启动模式,顾名思义就是说你在启动Activity的时候会有不同。(不同地方为 是否新建立实例 是否放在一个新的栈里)
是否创建新的实例是 否放在新的栈里
standard 任何时候启动都创建新的Activity的实例 还是放在应用启动时原来的栈里
singletop 创建时,看栈顶是不是要创建的的栈,如果是,就 还是放在应用启动时原来的栈里
不创建新的实例,直接引用,如果不是,那就创建
新的实例。
singletask 创建时,检测整个栈里是否有要创建的栈,如果有, 还是放在应用启动时原来的栈里
把这个栈里要启动的实例放在栈顶,原来的activity
全部销毁。
singleinstance 创建时,看整个系统里有没有一个栈只有这么一个实例的。 在一个新的栈里。
有的话,直接引用,没有的话创建一个新的栈放置这个
Activity且只有这个。
设置启动模式可以有两种办法,一在manifest.xml 的<Activity></Activity>标签里设置,而是根据intent的flag来进行设置。intent的flag有 Intent.FLAG_ACTIVITY_NEW_TASK
FLAG_ACTIVITY_SINGLE_TOP ,FLAG_ACTIVITY_CLEAR_TOP,FLAG_ACTIVITY_NO_HISTORY
(貌似没咋用过,面试一直问,蛋疼、、、)
相关文章推荐
- android环形弹出菜单的实现
- onActivityResult与singleTask或singleInstance的冲突问题
- Android实用小代码
- 【2015-10-20】收藏的链接
- AndroidStudio-PullTorefresh使用
- 4412开发板Android教程——Android平台简介
- Android单选按钮自定义列
- 【FAQ】如何用命令行更新android sdk?
- Android中ContentProvider组件详解
- Android仿淘宝购物车
- Android 解析XML数据
- Android EventBus学习
- Android开发_如何调用系统默认浏览器访问
- Android View 触屏事件传递
- Android 电话拨号器
- android标题栏下面弹出提示框(一) TextView实现,带动画效果
- android标题栏下面弹出提示框(一) TextView实现,带动画效果
- android 深入理解Android中的自定义属性
- Android 常见命令操作(需要配置adb.exe的环境变量)
- android显示证书sha1