FLAG_ACTIVITY_NEW_TASK和SingleInstance混用时候Activity栈情况

1. Main, Test,Test2 都是standard

运行过程: Main  -> Test - FLAG_ACTIVITY_NEW_TASK(启动方式) ->Test2 -FLAG_ACTIVITY_NEW_TASK ->Test

通过adb shell dumpsys activity activities观察, 其中只有一个栈

结论: 如谷歌所说, FLAG_ACTIVITY_NEW_TASK的表现和singleTask一致, 多次FLAG_ACTIVITY_NEW_TASK, 如果之前已经有栈了, 测试中是app默认的栈, 实际上只是在一个栈中操作

 

2.Main, Test,是standard, Test2 是singleInstance

Main  -> Test ->Test2 ->Test

通过adb shell dumpsys activity activities观察, 其中有两个栈, Test2 自己一个栈, 其余的Test和Main一个栈

141035_F200_259459.png

结论: 不指定启动模式, 对于Test2在自己栈启动, 其他Activity在app默认栈中启动

 

3.Main, Test,是standard, Test2 是singleInstance

Main  -> Test - FLAG_ACTIVITY_NEW_TASK(启动方式) ->Test2 -FLAG_ACTIVITY_NEW_TASK ->Test

通过adb shell dumpsys activity activities观察, 其中有两个栈, Test2 自己一个栈, 其余的Test和Main一个栈

141035_F200_259459.png

结论: 虽然使用FLAG_ACTIVITY_NEW_TASK启动,根据测试1, 所以对于Test2在自己栈启动, 其他Activity还是在app默认栈中启动, 因为从Test2启动Test的时候 Test已经有可以存放的栈, 不用创建新的栈

转载于:https://my.oschina.net/sfshine/blog/1635077

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值