標準啟動模式就是沒有特殊配置的activity。該啟動模式下會一直建立activity並將該activity壓入taskrecord中。
解釋:只有當activity位於棧(taskrecord)頂的時候,再次啟動當前的activity,復用棧頂的activity例項。不會重複建立。如果位於棧(taskrecord)內(中間位置),則與標準模式相同,仍然會重新建立例項。
singletask模式的activity在同乙個task內只有乙個例項,如果activity已經位於棧頂,系統不會建立新的activity例項,和singletop模式一樣。但activity已經存在但不位於棧頂時,系統就會把該activity移到棧頂,並把它上面的activity出棧。修改上面的程式,新建乙個secondactivity,將firstactivity設定為singletask啟動模式,並讓它啟動secondactivity,再讓secondactivity來啟動firstactivity。
總是在新的任務中開啟,並且這個新的任務中有且只有這乙個例項,也就是說被該例項啟動的其他 activity 會自動執行於另乙個任務中。當再次啟動該 activity 的例項時,會重用已存在的任務和例項。並且會呼叫這個例項的onnewintent()方法,將 intent 例項傳遞到該例項中。
設定了 singleinstance 的 activity,整個系統只有乙個例項,獨佔乙個棧,且由它啟動的 activity 根據目標 activity 的 taskaffinity 來選擇進哪個 task,若不存在對應的 task,則新建乙個 task 並新建乙個目標 activity 的例項入棧。
Activity四種啟動模式
launchmode在多個activity跳轉的過程中扮演著重要的角色,它可以決定是否生成新的activity例項,是否重用已存在的activity例項,是否和其他activity例項公用乙個task裡。這裡簡單介紹一下task的概念,task是乙個具有棧結構的物件,乙個task可以管理多個acti...
Activity四種啟動模式
activity的啟動模式可以通過androidmanifest.xml檔案中的元素的屬性來指定,一共有4中模式 android name activitymain android launchmode singletask 1 standard 2 singletop 3 singletask 4...
Activity 四種啟動模式
activity有四種載入模式 standard 預設 singletop,singletask和 singleinstance。以下逐一舉例說明他們的區別 一 standard activity的預設載入方法,即使某個activity在task棧中已經存在,另乙個activity通過intent跳...