Tra*_*909 98 android android-manifest taskaffinity
该属性究竟taskAffinity
用于什么?我已经阅读了文档但我无法理解.
任何人都可以解释外行人的任务亲和力吗?
Eri*_*ski 155
什么是Android Task Affinity用于?
Android应用程序具有形成堆栈的活动,就像一副牌.如果你启动一个Android应用程序,并启动五个活动A,B,C,D,E.它们将形成一个堆栈
E - chat view
D - weather screen
C - map view
B - weather screen
A - login screen
Run Code Online (Sandbox Code Playgroud)
E是最后一个要启动的活动,它正在显示.如果关闭E,将显示D. 如果关闭D,将显示C. 等等
请注意,活动B
和活动D
是相同的.如果用户对其进行了一些修改D weather screen
,然后决定关闭活动,然后关闭C Map view
?
然后,用户将返回天气屏幕,并且用户将不满意,因为在级别上D weather screen
进行的更改未保存在级别中B weather screen
.虽然它是相同的活动,但它与该活动的状态不同.
用户有5层活动堆栈,其中两个是相同的活动.从堆栈中弹出所有5个将会产生这样的现象:您将与同一活动的两个不同版本进行交互,并且可能非常混乱.
用户通常不会考虑严格的活动堆栈.他们认为:"天气预报我会在那里做出改变"然后他们想回到地图视图.然后再次备份,因为他们想要返回登录屏幕.为什么B weather app
显示以及为什么不从级别保存设置D
?
如果活动B
和D
状态相关,程序员可能会减轻一些混乱.这种方式改变为一方改变另一方.每次用户打开新的天气屏幕时,它都会秘密打开天气屏幕的单个实例.
在这些情况下,可能需要更改活动的taskAffinity.用户将更改级别D.然后返回到级别B.并查看B中对D的更改.
程序保留了一个可以备份的堆栈,这很好,当用户在随机位置打开同一活动的X实例时,它们都是一个.
幻灯片显示更多解释:http: //www.slideshare.net/RanNachmany/manipulating-android-tasks-and-back-stack
亲和力指示活动喜欢属于哪个任务.
亲和力在两种情况下起作用:
当启动活动的intent包含FLAG_ACTIVITY_NEW_TASK标志时.
当一个活动的allowTaskReparenting属性设置为"true"时.
请参阅http://developer.android.com/guide/components/tasks-and-back-stack.html
归档时间: |
|
查看次数: |
39899 次 |
最近记录: |