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