Activity啟動模式簡單解釋

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.aiwalls.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

發佈留言