啟動模式簡單地說就是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方法:
1.呼叫finish
2.殺死該程序:killprocess(process.mid)
3. 終止正在執行的虛擬機器:system.exit()
退出整個應用:
1.製造拋異常導致整個程式退出
2.將所有的activity放入到乙個list中,然後在需要退出的時候,將所有的activity,finish掉
Activity的四種啟動方式
activity 有四種載入模式 1 standard 模式 這是預設模式,每次啟用activity時都會建立activity例項,並放入任務棧中。2 singletop 模式 如果在任務的棧頂正好存在該activity的例項,就重用該例項 會呼叫例項的 onnewintent 否則就會建立新的例項...
Activity 的四種啟動方式
activity 的四種啟動方式 在 android 裡,有4 種activity 的啟動模式,分別為 standard 預設 所有activity在乙個task任務湛中,新建乙個在task中新增乙個 singletop 所有activity在乙個task中,如果新開啟activity和棧頂 act...
Activity的四種啟動方式
第一種 standard 也是預設方式 launchmode standard 使用標準啟動模式每次都會建立乙個新的activity 第二種 singletop 單頂模式 launchmode singletop 使用單頂啟動模式每次都會建立乙個新的activity,除非它 棧 的頂部已經有個一樣的...