Android launchMode 頁面的啓動模式,這個我自認爲在學校學習的時候,就已經完全理解每種啓動模式,在日常開發中也會用到,也許它也並不能完全理解和應用。而我一直也以爲啓動模式是一個APP之間的一個東西,但沒想到其實也影響APP之間。在這之前,我發現我的手機有時候我在清除最近任務的時候,發現相冊,我把它清除了之後,再打開最近任務它還是出現,不過裏面的照片不同了,這就讓我很疑惑,我以爲是系統的bug。
直到我看到這個視頻: 扔物線 :Android 面試黑洞——當我按下 Home 鍵再切回來,會發生什麼?
這個視頻值得看三遍,纔對得起這個動畫😭
如果不是遇到上面的問題,我可能不會有那麼深的體會,照扔物線所說的那樣,查看照片這個Activity的啓動模式應該是 singleInstance,在平常我可能第一通過相冊打開,第二通過相機打開上一張照片。這樣就會造成實際上有兩個任務棧,在這裏認識到一個新的東西 : taskAffinity ,這個值一般是默認爲應用的包名,一般一個APP的每個Activity的 taskAffinity 都是相同的,而手機的人物列表中不能顯示重複的 taskAffinity ,所以只會顯示一個。
在最近任務的task未必都活着,活着的任務不一定都在任務列表中顯示。
裏面還是提到一個屬性:allowTaskReparenting (Activity) ,