Activity啓動模式簡單解釋

android中,activity的啓動模式有四種,分別爲:
「standard」 (默認)
「singleTop」
「singleTask」

「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都會被重用,且全局只能有一個實例