Intent Flag启动模式——Android群英传
来源:互联网 发布:电钢琴推荐 知乎 编辑:程序博客网 时间:2024/06/05 09:02
系统提供了两种方式设置一个Activity的启动模式:
一个是通过在AndroidMainifest文件中的属性android:launchMode来设置
standard:标准模式,谁启动了这个Activity,那么这个Actiivty就运行在启动它的那个Activiity所在的栈中。比如ActivityA启动了ActivityB(B是标准模式),那么B就会进入启动它那个A所在的栈中。若ApplicationContext去启动standard模式会报错,因为非Activity类型的Context并没有所谓的任务栈。
singleTop:栈顶复用模式,如果新Activity已经位于任务栈的栈顶,那么Activity不会被重新构建,同时它的onNewIntent方法会被回调,且onCreate、onStart不会被系统调用,因为它并没有发生改变。
singleTask:栈内复用模式,是一种单实例模式。默认有clearTop的效果,会导致栈内所在D上面的Activity全部出栈。TaskAffinity,任务相关性,主要和singleTask和allowTaskReparenting属性配对使用,标识了一个Activity所需要的任务栈的名字,默认情况下,为应用的包名。我们也可以为每个Activity都单独指定TaskAffinity属性,但必须不能和包名相同。
singleInstance:单实例模式,创建的Activity只能单独的位于一个任务栈中。
另一种就是本文要介绍的通过Intent的flag来设置。
1、intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
与android:launchMode=”singleTask”效果相同。
2、FLAG_ACTIVITY_SINFLE_TOP
与android:launchMode=”singleTop”效果相同。
3、FLAG_ACTIVITY_CLEAR_TOP
有此标记为的Activity,当它启动时,在同一个任务栈中所有位于它上面的Activity都要出栈。 singleTask默认就有此标记位。
4、FLAG_ACTIVITY_NO_HISTORY
使用这种模式启动Activity,当该Activity启动其他Activity后,该Activity就消失了,不会保留在Activity栈中。如A-B,B中以这种模式启动C,C在启动D,则当前Activity栈为ABD
两种设置方式的区别:
1、优先级:第二种优先级要高于第一种。
- Intent Flag启动模式——Android群英传
- Android intent flag启动模式
- Android-启动模式task-lunchmodle-intent flag
- Android Activity 启动模式:Intent 的Flag
- Intent Flag启动模式
- android Intent启动flag
- android Intent启动flag
- Android activity栈、启动模式和intent flag属性详解
- Android-启动模式task-lunchmodle-intent flag 总结
- android Intent启动flag含义
- android Flag启动模式
- Activity启动模式及Intent 常用Flag
- Android的任务栈简介、AndroidMainifest启动模式、Intent Flag启动模式
- android launchMode加载模式和intent flag
- Android Intent Flag实现singleTask模式
- Android 之Activity启动模式(二)之 Intent的Flag属性
- android深入解析Activity的launchMode启动模式,Intent Flag,taskAffinity
- Android 之Activity启动模式(二)之 Intent的Flag属性
- 用手机就能识别车牌号码的开发应用
- Java编写身份证号码判断及其信息
- Android学习日志——第7天(补)
- 模式识别经典算法——Kmeans图像聚类分割(以最短的matlab程序实现)
- Nginx 服务器的启停控制
- Intent Flag启动模式——Android群英传
- 树和二叉树(三)-线索二叉树
- 2014基本贪心1002
- adb shell am broadcast 手动发送广播及adb shell am/pm其他命令
- ssget 用法详解
- 向uboot增加新的命令
- Lua split
- 洛谷 P1332 血色先锋队
- phpmyadmin安装配置以及相关问题