Android進階學習——TaskAffinity和allowTaskReparenting

對於日常的工作而言,可能android系統的四種啓動模式已經能夠滿足我們的需求,稍微複雜一些的功能比如後端指定調用某個頁面,通過Server端下發某個地址給移動端,解析action等信息後通過scheme協議,就可以完成跳轉。

今天在看Android開發藝術探索的時候看到了一個知識點,之前沒有遇到過,那就是TaskAffinity和allowTaskReparenting

先說TaskAffinity:該參數在默認情況下是和我們的包名相同的,當然,也可以手動添加爲當前的包名,但是這麼做可能並沒有什麼用處。一般情況下,TaskAffinity是和singgleTask和allowTaskReparenting來配合使用的。

當TaskAffinity和singgleTask配合使用的時候,它是具有該模式Activity的目前任務棧的名字,待啓動的Activity會運行在名字和TaskAffinity相同的任務棧中。

當TaskAffinity和allowTaskReparenting結合的時候,如果A啓動了B應用中的C activity,這個時候A和C是在同一個任務棧中的,這個時候如果通過點擊B的圖標啓動B的話,C就會回到B的任務棧中。這樣做的原因是因爲當C被啓動的時候,由於是A啓動的,所以只能和A在同一個任務棧中(此時C的taskAffinity是屬於應用B的包名的),當點擊了B app,C就會發現自己需要的任務棧被建立了,所以就會自動回到B APP的任務棧中。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章