android中,activity的啟動模式有四種,分別為:
“standard”(預設)
“singleTop”
“singleTask”
“singleInstance”
他們分別在AndroidManifest.xml檔案中可配,也可通過intent啟動Activity時添加必要參數來設定
例如:
1
<activity
2
android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|screenLayout|fontScale|uiMode|orientation"
3
<span style="color:#e53333;">android:launchMode="singleTask"</span> android:screenOrientation="portrait"
4
android:windowSoftInputMode="adjustPan"
5
android:name=".activity.ShowHowAct" >
下面就一一說明這幾個模式的特徵:
standard(預設)
這個是android的Activity的預設模式,如果沒有配置 android:launchMode ,則預設這個模式。該模式下,一個Activity可以同時被添加到多個task中,
且一個task可以有多個執行個體,且每次通過intent啟動時,都會產生一個新的執行個體。
singleTop www.2cto.com
該屬性和standard較類似,不同的地方就是,噹噹前Activity的執行個體在當前task的棧頂時,intent啟動時,則不產生新的執行個體,會重用(不產生新的執行個體)原有的執行個體,如果你顯式指定intent的參數FLAG_ACTIVITY_NEW_TASK。如果提供了FLAG_ACTIVITY_NEW_TASK參數,會啟動到別的task裡。
singleTask
該模式下,Activity只會有一個執行個體。如果某一個task中已有該Activity的一個執行個體存在,則不再啟動新的,每次都會被重用(重用就是如果該Activity在task的棧底,則會被調到棧頂),且可以和其他的Activity共存於一個task中。
singleInstance
該模式和singleTask一樣,唯一不同的就是,該模式下,Activity會獨自擁有一個task,不會和其他Activity公用,每次Activity都會被重用,且全域只能有一個執行個體
摘自 helloclq