首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

问一个activity back stack的有关问题

2012-04-17 
问一个activity back stack的问题比如有A - B -C 三个activity。 A activity是singleTask的。在C里finish(

问一个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实例会位于任务的堆栈顶端中。

热点排行