Activity四种启动模式详解1. standard 2. singleTop 3. singleTask 4. singleInstance
来源:互联网 发布:Android list内存优化 编辑:程序博客网 时间:2024/06/05 16:17
1. standard
2. singleTop
3. singleTask
4. singleInstance
1. 使用
1. 在manifest中activiy标签中设置launchMode
2. 代码中使用intent启动activity时指定flag,此方法与launchMode并不是一一对应的,并且优先级高于launchMode
2. 详细说明
1. standard
默认与启动的activity位于用一个task栈,忽略指定的栈名。除非启动该activity的activity为singleInstance模式。每次都会在栈顶创建一个activity实例
2. singleTop
默认与启动的activity位于用一个task栈,忽略指定的栈名。除非启动该activity的activity为singleInstance模式。若栈顶恰好为打开的activity实例,不创建新的实例,复用该栈顶实例,复用时会调用该activity的onNewIntent-Restart-Onstart-OnResume(不调用OnCreate)
3. singleTask
默认与启动的activity位于用一个task栈,忽略指定的栈名。除非启动该activity的activity为singleInstance模式。若栈内存在与打开的activity相同的实例,不创建新的实例,复用该栈顶实例,并清除相同task栈内该实例上部所有实例,具有clear top效果。复用时会调用该activity的onNewIntent-Restart-Onstart-OnResume(不调用OnCreate)。注:启动singleTask的activity时,若该singleTask的activiy指定了taskAffinity也就是Task栈名,系统会判断该栈名与启动的activiyt所在的栈名是否相同,如不同则新建该task栈用来存放该activiy
4. singleInstance
singleTask的升级版。必须单独存在于一个task栈内,使用singleInstance的activityA打开其他非singleInstance的activityB时,由于两个不能处于同一个task栈内,会使用activityB指定的task栈,未指定的话新建task栈存储
3. android:taskAffinity用来指定默认栈名
android:launchMode="standard" 启动方法
<
activityandroid:name=".launchmode.ActivityA"
android:taskAffinity="com.task.a1"
android:launchMode="standard"/>
4. activity的launchMode不是默认时,需要注意重写activity的onNewIntent方法,否则复用activity时该activity无法重新获得intent启动数据:例如
@Override
protected void onNewIntent(Intent intent) {Log.i("test","onNewIntent...");
setIntent(intent);
processExtraData();
super.onNewIntent(intent);
}
private void processExtraData(){String value = getIntent().getStringExtra("test");
Log.i("test","value===>"+value);
}
参考网址:
http://blog.csdn.net/zhuzp_blog/article/details/51367477
http://blog.csdn.net/itluochen/article/details/52599083
http://www.cnblogs.com/zhangming-blog/articles/5332954.html
1 0
- Activity四种启动模式详解1. standard 2. singleTop 3. singleTask 4. singleInstance
- Activity四种启动模式:standard、singleTop、singleTask、singleInstance
- Activity四种启动模式(standard,singleTop,singleTask,singleInstance)
- Activity启动的四种模式:Standard,SingleTop,SingleTask,SingleInstance
- Activity四种启动模式 图文详解:standard, singleTop, singleTask 以及 singleInstance
- Activity启动模式图文详解:standard, singleTop, singleTask 以及 singleInstance
- Activity启动模式图文详解:standard, singleTop, singleTask 以及 singleInstance
- Activity启动模式图文详解:standard, singleTop, singleTask 以及 singleInstance
- Activity启动模式图文详解:standard, singleTop, singleTask 以及 singleInstance
- Activity启动模式图文详解:standard, singleTop, singleTask 以及 singleInstance
- Activity启动模式(standard singleTop singleTask singleInstance)图文详解
- Activity启动模式图文详解:standard, singleTop, singleTask 以及 singleInstance
- Activity启动模式图文详解:standard, singleTop, singleTask 以及 singleInstance
- Activity启动模式图文详解:standard, singleTop, singleTask 以及 singleInstance
- Activity启动模式图文详解:standard, singleTop, singleTask 以及 singleInstance
- Activity启动模式图文详解:standard, singleTop, singleTask 以及 singleInstance
- Activity启动模式图文详解:standard, singleTop, singleTask 以及 singleInstance
- Activity四种启动方式 standard singleTop singleTask singleInstance
- 如何提高网站的安全性?
- Dubbo的介绍
- hdu 核反应堆 动态规划
- hibernate生成数据表时报错: Unsuccessful: create table NEWS (ID integer not null auto_increment, TITLE varcha
- 浏览器的协商缓存与强缓存
- Activity四种启动模式详解1. standard 2. singleTop 3. singleTask 4. singleInstance
- 1月19日
- hexo+github搭建个人博客
- 处理腾讯云通信随笔
- 寒假学习之stm32(16)----IIC通信协议
- 聊聊最近几年的路径追踪技术的进展(一)
- javascript获取表单里的数据
- 设计模式 - Observer观察者模式
- android中活动的启动模式