Android任务亲和力解释

taskAffinity使用的属性究竟是什么? 我已经通过文件,但我不明白。

任何人都可以用俗语说明任务亲和力吗?

Android任务关联使用什么?

一个Android应用程序具有像一副纸牌一样形成堆栈的活动。 如果你启动一个android应用程序,并启动五个活动A,B,C,D,E。 他们将形成一个堆栈

 E - chat view D - weather screen C - map view B - weather screen A - login screen 

E是最后一个要开始的活动,它正在展示。 如果closuresE,则会显示D. 如果closuresD,则会显示C. 等等

请注意,活动BD是相同的活动。 如果用户要对D weather screen进行一些修改,然后决定closures该活动,然后closuresC Map view怎么办?

然后,用户将回到天气屏幕,并且用户将不高兴,因为在D weather screenD weather screen所做的改变没有保存在B weather screenB weather screen 。 虽然这是同一个活动,但这是一个不同的活动状态。

用户有五层活动,其中两个活动相同。 从堆栈中popup所有5将会产生这样的现象,即您将与两个不同版本的相同活动进行交互,并且可能相当混乱。

用户通常不会考虑一堆僵硬的活动。 他们认为:“天气观点,我会在那里做一个改变”,然后他们想要回到地图视图。 然后再次备份,因为他们想要回到login屏幕。 为什么B weather app显示,为什么不保存D级的设置?

如果活动BD在状态中联系起来,程序员可能能够减轻一些混淆。 这样改变一个改变另一个。 每次用户打开一个新的天气屏幕时,它都会秘密地打开天气屏幕的单个实例。

在这种情况下,改变Activity的taskAffinity可能是可取的。 用户将改变级别D.然后返回到级别B.并查看对D做出的改变。

程序保留一个可以备份的堆栈,这很好,当用户在随机的地方打开同一个活动的X实例时,它们都是一个。

幻灯片更多的解释: http : //www.slideshare.net/RanNachmany/manipulating-android-tasks-and-back-stack

亲和度指示活动优选属于哪个任务。

亲和力在两种情况下发挥作用:

当启动活动的意图包含FLAG_ACTIVITY_NEW_TASK标志时。

当某个活动的allowTaskReparenting属性设置为“true”时。

请参阅http://developer.android.com/guide/components/tasks-and-back-stack.html