taskAffinity用于指定当前Activity(activity1)所关联的Task,allowTaskReparenting用于配置是否允许该activity可以更换从属task,通常情况二者连在一起使用,用于实现把一个应用程序的Activity移到另一个应用程序的Task中。
allowTaskReparenting用来标记Activity能否从启动的Task移动到taskAffinity指定的Task,默认是继承至application中的allowTaskReparenting=false,如果为true,则表示可以更换;false表示不可以。
引用网上的解释例子:
一般来说,当Activity启动后,它就与启动它的Task关联,并且在那里耗尽它的整个生命周期。当当前的Task不再显示时,你可以使用这个特性来强制Activity移动到有着affinity的Task中。
例如:
在一个E-Mail邮件内容中,包含一个web页的链接,点击它就会启动一个Activity来显示这个页面。但是这个Activity是由浏览器应用程序定义的,那么现在它作为e-mail Task(任务)的一部分。如果它重新宿主到Browser Task里,当Browser下一次进入到前台时,它就能被看见(上一次从邮件中打开的地址),并且,当e-mail Task再次进入前台时,就看不到它了。
注解:
1:点击邮件内容中的链接,会打开一个Activity显示这个链接,这个Activity是属于Android系统浏览器的。
2.当显示这个链接的时候,点击Home键,让邮件App进入到后台中。
3.点击浏览器应用程序,你会发现打开的浏览器程序显示的是,上一次从邮件中打开的链接页面。
4.此时点击Home键,浏览器App进入到后台中。
5.打开邮件App(注意我们没有关闭邮件App,而是让他进入到了后台中),你会发现那个显示链接的Activity不见了(因为他已经移动到浏览器的Task中了);
参考地址:http://blog.csdn.net/einarzhang/article/details/6971878
未完待续....