activity的task总结

Intent几种常见的flags:

1.FLAG_ACTIVITY_NEW_TASK//根据affinity寻找或创建一个新的task来放置目标Activity,可以防止不同affinity的activity处于同一个task中

2.FLAG_ACTIVITY_CLEAR_TOP//如果在栈中发现存在Activity实例,则清空这个实例之上的Activity,使其处于栈顶

3.FLAG_ACTIVITY_SINGLE_TOP//当task中存在目标Activity实例并且位于栈的顶端时,不再创建一个新的,直接利用这个实例。

4.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET//Activity以及在那个Activity其上的所有Activity都会在task重置时被清除出task

5.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED//这个标记在以下情况下会生效:1.启动Activity时创建新的task来放置Activity实例;2.已存在的task被放置于前台。

 

<activity>的task相关属性

1.android:allowTaskReparenting//退居后台后,是否能从启动它的那个task移动到有共同affinity的task

2.android:alwaysRetainTaskState//长时间退居后台,用户再次启动应用时,仍然可以看到上一次操作的界面

3.android:clearTaskOnLaunch//每次用户重新启动这个应用时,都只会看到根Activity,task中的其他Activity都会被清除出栈

4.android:finishOnTaskLaunch//每次重新启动时,销毁

 

Activity的四种launchMode

1.standard    //不管有没有已存在的实例,都生成新的实例

2.singleTop//如果发现有对应的Activity实例正位于栈顶,则重复利用,不再生成新的实例

3.singleTask//如果发现有对应的Activity实例,则使此Activity实例之上的其他Activity实例统统出栈,使此Activity实例成为栈顶

4.singleInstance//将Acitvity放置于新的栈中,并保证不再有其他Activity实例进入

 

总结:

以上的参数有一些是同样的效果,区别是Intent的flags是调用方的期望行为,xml中的是activity自己的期望行为。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值