「singleInstance」android
他們分別在AndroidManifest.xml文件中可配,也可經過intent啓動Activity時添加必要參數來設置ui
例如:spa
<activity
android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|screenLayout|fontScale|uiMode|orientation"
android:launchMode="singleTask" android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan"
android:name=".activity.ShowHowAct" >
下面就一一說明這幾個模式的特徵:code
standard(默認)orm
這個是android的Activity的默認模式,若是沒有配置 android:launchMode ,則默認這個模式。該模式下,一個Activity能夠同時被添加到多個task中,xml
且一個task能夠有多個實例,且每次經過intent啓動時,都會生成一個新的實例。it
singleTopio
該屬性和standard較相似,不一樣的地方就是,噹噹前Activity的實例在當前task的棧頂時,intent啓動時,則不生成新的實例,會重用(不生成新的實例)原有的實例,若是你顯式指定intent的參數FLAG_ACTIVITY_NEW_TASK。若是提供了FLAG_ACTIVITY_NEW_TASK參數,會啓動到別的task裏。class
singleTask配置
該模式下,Activity只會有一個實例。若是某一個task中已有該Activity的一個實例存在,則再也不啓動新的,每次都會被重用(重用就是若是該Activity在task的棧底,則會被調到棧頂),且能夠和其餘的Activity共存於一個task中。
singleInstance
該模式和singleTask同樣,惟一不一樣的就是,該模式下,Activity會獨自擁有一個task,不會和其餘Activity公用,每次Activity都會被重用,且全局只能有一個實例