android任務棧及activity四種啟動模式
一、android任務棧
棧:先進後出
佇列:先進先出
任務棧Task中:開啟一個Activity叫進棧 關閉一個activit出棧
任務棧是用來維護Activity的、是用來維護使用者的操作體驗
我們操作的Activity永遠是任務棧的棧頂的Activity
說應用程式退出了 實際上任務棧清空,程序並沒有結束
二、activity四種啟動模式
①standard標準啟動模式
standard標準啟動模式在activity的配置檔案中設定android:launchMode="standard"
每開啟一個activity就會完成一次進棧,每關閉一個activity就會完成一次出棧。
②singletop啟動模式
singletop單一頂部模式在activity的配置檔案中設定android:launchMode="singleTop"
如果任務棧的棧頂存在這個要開啟的activity,不會重新的建立activity,而是複用已經存在的activity。保證棧頂如果存在,不會重複建立。
應用場景:瀏覽器的歷史書籤頁
③singleTask單一任務棧啟動模式
singleTask單一任務棧模式在activity的配置檔案中設定android:launchMode="singleTask"
在當前任務棧裡面只能有一個例項存在,當開啟activity的時候,就去檢查在任務棧裡面是否有例項已經存在,如果有例項存在就複用這個已經存在的activity,並且把這個activity上面的所有的別的activity都清空,複用這個已經存在的activity,從而保證整個任務棧裡面只有一個例項存在。
如果一個activity的建立需要佔用大量的系統資源(cpu,記憶體)一般配置這個activity為singletask的啟動模式。
應用場景:瀏覽器的activity
④singleInstance單例項啟動模式
singleInstance啟動模式非常特殊, activity會執行在自己的任務棧裡面,並且這個任務棧裡面只有一個例項存在
如果你要保證一個activity在整個手機作業系統裡面只有一個例項存在,使用singleInstance。
應用場景: 來電頁面