一、啟動模式介紹
啟動模式簡單地說就是activity啟動時的策略,在androidmanifest.xml中的標籤的android:launchmode屬性設定;
啟動模式有4種,分別為standard、singletop、singletask、singleinstance;
講解啟動模式之前,有必要先講解一下「任務棧」的概念;
任務棧
每個應用都有乙個任務棧,是用來存放activity的,功能類似於函式呼叫的棧,先後順序代表了activity的出現順序;比如activity1-->activity2-->activity3,則任務棧為:
二、啟動模式
(1)standard:每次啟用activity時(startactivity),都建立activity例項,並放入任務棧;
(2)singletop:如果某個activity自己啟用自己,即任務棧棧頂就是該activity,則不需要建立,其餘情況都要建立activity例項;
(3)singletask:如果要啟用的那個activity在任務棧中存在該例項,則不需要建立,只需要把此activity放入棧頂,並把該activity以上的activity例項都pop;
(4)singleinstance:如果應用1的任務棧中建立了mainactivity例項,如果應用2也要啟用mainactivity,則不需要建立,兩應用共享該activity例項;
singtask的應用:
可以用來退出整個應用。
將主activity設為singtask模式,然後在要退出的activity中轉到主activity,然後重寫主activity的onnewintent函式,並在函式中加上一句finish。
附:退出單個activity方法:
呼叫finish
殺死該程序:killprocess(process.mid)
終止正在執行的虛擬機器:system.exit()
退出整個應用:
製造拋異常導致整個程式退出
將所有的activity放入到乙個list中,然後在需要退出的時候,將所有的activity,finish掉
通過廣播來完成退出功能
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跳...