1.standard模式
standard是activity預設的啟動模式,在不指定activity啟動模式的情況下,所有activity使用的都是standard模式。因此,前面是用的activity都是standard啟動模式。
在standard模式下,每當啟動乙個新的activity,它就會進入任務棧,並處於占地的位置,對於使用standard模式的activity,系統不會判斷該activity在棧中是否存在,每次啟動都會建立乙個新的例項。
如圖所示:
2.singletop模式
singletop模式與standard模式類似,不同的是,當自動的activity已經位於棧頂時,則直接使用它不建立新的例項。如果啟動的activity沒有位於棧頂時,則建立乙個新的例項位於棧頂。
如圖所示:
3singletask模式
如果希望activity在整個應用程式中只存在乙個例項,可以使用singletask模式,當activity的啟動模式指定為singletask,每次啟動該activity時,系統會首先檢查棧中是否存在該activity的例項,如果發現已經存在則直接使用該例項,並將當前的activity之上的所有activity出戰,如果沒有發現則建立乙個新的例項。
如圖所示:
從圖中可以看出,當再次啟動activity02時,並沒有建立新的例項,而是將activity0例項移除,復用activity02例項。
4.singleinstance模式
在程式開發中,如果需要activity在整個系統中都只有乙個例項,這是就需要用到singleinstance模式。不同於上述三種模式,指定為singleinstance模式的activity會啟動新的任務棧來管理這個activity。
singleinstance模式載入activity時,無論從哪個任務棧中啟動該activity,只會建立乙個activity例項,並且會使用乙個全新的任務棧來裝載該activity例項。而採用這種模式啟動會分為兩種情況:
第一:如果要啟動的activity不存在,在=系統會先建立乙個新的任務棧,在建立該activity的例項,並把該activity加入棧頂。
如圖所示:
第二:如果要啟動的activity已經存在,無論位於哪個應用程式或者哪個任務棧中,系統都會把該activity所在的任務棧轉到前台。從而使該activity顯示出來。
好了,這就是activity中4種啟動方法,同學們可根據具體情況來選擇不同的啟動方法。
Activity4種啟動模式
standad模式是activity預設的啟動方式,在不進行顯示指定的情況下,所有activity都會以這種方式啟動。intent intent new intent this,firstactivity.class startactivity intent 以這種模式啟動的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...