android中的launchMode和flag
来源:互联网 发布:中国数学水平 知乎 编辑:程序博客网 时间:2024/05/16 15:49
android中的launchMode和flag
standard :标准模式,只要start一个activity就new一个实例入栈
singleTop :当start的activity在栈顶时就不new,复用原实例,此时调用onNewIntent取得intent信息
singleTask :activity只有唯一实例,start到该实例时,会finish掉其上面的其他activity,同样调用onNewIntent
singleInstance :该activity只有唯一实例,且独享一个task,start到其他activity时会创建新task,当第一次start到该实例时,也会创建独享的task,再次start该activity时会切换task顺序,但不影响原task中各activity的顺序
flag:
参考:http://www.cnblogs.com/xiaoQLu/archive/2012/07/17/2595294.html
FLAG_ACTIVITY_BROUGHT_TO_FRONT//
通常在应用代码中不需要设置这个FLAG,当launchMode为singleTask时系统会默认设置这个标志。FLAG_ACTIVITY_CLEAR_TASK//
含有待启动Activity的Task在Activity被启动前清空。也就是说,这个Activity会成为一个新的root,并且所有旧的activity都被finish掉,只能与 FLAG_ACTIVITY_NEW_TASK 一起使用// 解释太难理解了,其实就是迎接新世界,过去的都CLEAR了FLAG_ACTIVITY_CLEAR_TOP// 相当于singleTask,会finish掉top上的activity
FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET// 当task重置时,内部记录的activity全部clear掉
FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS // 新开的不记录到最近应用历史栈中(长按HOME键的那个历史栈)
FLAG_ACTIVITY_FORWARD_RESULT // 应用场是A forResult启动了B,而B再用这个flag启动C,则C来返回result给A
FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY // 通常应用不用设置,系统调用,比如长按HOME键从历史记录中启动
FLAG_ACTIVITY_MULTIPLE_TASK// Do not use this flag unless you are implementing your own top-level application launcher
FLAG_ACTIVITY_NEW_TASK// 若欲启动的与原task不属于同亲属关系,则new一个task
FLAG_ACTIVITY_NO_ANIMATION
FLAG_ACTIVITY_NO_HISTORY// 不在task中保存其回退历史
FLAG_ACTIVITY_NO_USER_ACTION// 新的ACTIVITY切到前台时,阻止onUserLeaveHint()回调
FLAG_ACTIVITY_PREVIOUS_IS_TOP// 当前ACTIVITY不作为TOP,上一个作TOP,新开的将可能代替掉当前,成为TOP
FLAG_ACTIVITY_REORDER_TO_FRONT // 若原栈中存在欲启动的activity,则移到栈顶
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED // 新开ACTIVITY将会成为TASK的TOP,然后被置于栈的FRONT DOOR,即为重置
FLAG_ACTIVITY_SINGLE_TOP// 相当于singleTop,
FLAG_ACTIVITY_TASK_ON_HOME// 必须和NEW_TASK连用,新开ACTIVITY会放置在HOME ACTIVITY的TASK的TOP上,效果如果BACK将一定回退到HOME
onUserLeaveHint()主要是用户主观意图时调用,比如按HOME键最小化时(可以在这里添加NOTIFICAITON到通知栏表示程序后台运行),ACTIVITY切换(startActivity,finish原来的)等情况
PendingIntent的flag:
nt FLAG_CANCEL_CURRENT:如果该PendingIntent已经存在,则在生成新的之前取消当前的。会重新new 一个intent
int FLAG_NO_CREATE:如果该PendingIntent不存在,直接返回null而不是创建一个PendingIntent.
int FLAG_ONE_SHOT:该PendingIntent只能用一次,在send()方法执行后,自动取消。
int FLAG_UPDATE_CURRENT:如果该PendingIntent已经存在,则用新传入的Intent更新当前的数据。会更新extras数据
- android中的launchMode和flag
- android launchMode加载模式和intent flag
- launchMode和Flag
- Android activity launchMode与Intent.Flag关系
- Activity launchmode和Intent flag详解
- [Android知识体系]之四大组件:activity(LaunchMode和Flag)
- Android Intent Flag、taskAffinity属性、launchMode等相关
- LaunchMode and Flag
- 有关launchMode和intent.flag的一些文章
- Activity launchMode,taskAffinity,Intent.Flag
- android深入解析Activity的launchMode启动模式,Intent Flag,taskAffinity
- android深入解析Activity的launchMode启动模式,Intent Flag,taskAffinity
- Activity的四种LaunchMode和Intent 的flag的使用
- android中的4种launchmode详解
- android中的四种启动模式launchMode
- Android中的基础----各种LaunchMode的使用
- 关于Activity的LaunchMode与Flag
- Android Intent中的FLAG,很全
- 搜索引擎的工作原理
- 到一个变量
- java.util.concurrent.RunnableFuture
- [IOS]划屏解锁(重写UIView)
- Android开发:新建Android Application,src和layout文件夹为空(含新建模拟器及模拟器异常问题解决)
- android中的launchMode和flag
- 基于强类型DataSet的批量数据导入的优化算法
- android中的intent
- 黑马程序员-java高新技术前奏-enhance1
- 继续随机数:接受/拒绝方法(标准正态分布)
- 注释的代码
- 叶正盛:再次写给我们这些浮躁的程序员
- hdu 1143 Tri Tiling 递推
- 黑马程序员_java基础——基础语言