当前位置: 代码迷 >> Android >> about FLAG_ACTIVITY_NEW_TASK,该如何处理
  详细解决方案

about FLAG_ACTIVITY_NEW_TASK,该如何处理

热度:83   发布时间:2016-04-28 06:51:40.0
about FLAG_ACTIVITY_NEW_TASK
FLAG_ACTIVITY_NEW_TASK:
  之前描述的,一个Activity一般通过调用startActivity()启动并加入到Task中。它同调用者一样,进入同一个Task。然而,如果传递给startActivity()的Intent对象中包含FLAG_ACTIVITY_NEW_TASK时,系统会搜索一个新的Task来容纳新的Activity。通常,如标志的名字所示,是一个新的Task。然而,并不是必须是。如果已经存在一个Task与新Activity的affinity相同,这个Activity就会加入到那个Task中。如果不是,启动一个新的Task。

----------------------
以上是文档的翻译,

1问:如果传递给startActivity()的Intent对象中包含FLAG_ACTIVITY_NEW_TASK时,系统会搜索一个新的Task来容纳新的Activity----------我启动了,但发现task id一样,并没有新建1个task 怎么回事呢?

2问:如果已经存在一个Task与新Activity的affinity相同,这个Activity就会加入到那个Task中。如果不是,启动一个新的Task。-----------什么情况下会出现affinity相同,,“这个Activity就会加入到那个Task中”加到那个task中有什么目的呢??

感谢

------解决方案--------------------
不知道你有没有耐心认真读完这篇文章:http://www.cnblogs.com/jerrychoi/archive/2010/05/12/1733654.html
------解决方案--------------------
2问:如果已经存在一个Task与新Activity的affinity相同,这个Activity就会加入到那个Task中。如果不是,启动一个新的 Task。-----------什么情况下会出现affinity相同,,“这个Activity就会加入到那个Task中”加到那个task中有什么目的呢??
  affinity: 可以在 manifest中设置。 Activity/Application 有属性 taskAffinity。如果未设置,默认是,Activity的包名。  
  -----------什么情况下会出现affinity相同, 你设置为相同,就相同了。

“这个Activity就会加入到那个Task中”加到那个task中有什么目的呢??

 实例后的Activity都要放到task中, 【“这个Activity就会加入到那个Task中”加到那个task中有什么目的呢??】 这个就是 寻找 task的过程。  【加到那个Task中】 没有什么目的,是把Actvity放到那个task而已。
   一个task实际是一个Activity栈,里面有多个activity。