当前位置: 代码迷 >> Android >> 问一个activity back stack的有关问题
  详细解决方案

问一个activity back stack的有关问题

热度:92   发布时间:2016-05-01 21:33:49.0
问一个activity back stack的问题
比如有A -> B ->C 三个activity。 A activity是singleTask的。在C里finish()并startActivity到A。 这时当前task的back stack会变成什么样子? Activity B会不会被销毁掉?
  谢谢

------解决方案--------------------
1. 设置了”singleTask”启动模式的Activity,它在启动的时候,会先在系统中查找属性值affinity等于它的属性值 taskAffinity的任务存在;如果存在这样的任务,它就会在这个任务中启动,否则就会在新任务中启动。因此,如果我们想要设置 了”singleTask”启动模式的Activity在新的任务中启动,就要为它设置一个独立的taskAffinity属性值。

2. 如果设置了”singleTask”启动模式的Activity不是在新的任务中启动时,它会在已有的任务中查看是否已经存在相应的Activity实 例,如果存在,就会把位于这个Activity实例上面的Activity全部结束掉,即最终这个Activity实例会位于任务的堆栈顶端中。
  相关解决方案