Activity 四種啟動模式
設定activity啟動模式,在
AndroidManifest.xml
檔案中activity标簽裡面設定
android:launchMode
屬性,例如
<activity
android:name=".MainActivity"
android:launchMode="standard">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
1、standard 标準模式(預設)
每次跳轉都會建立一個新的執行個體,存儲在調用者activity的任務棧中,即同一個任務棧中。
2、singleTop
這種模式類似與standard模式,但有一點不一樣,僅當跳轉的目标activity
處于棧的頂部時,此時不會建立新的執行個體,會複用棧的頂部activity執行個體,
即不會執行onCreate(),onStart()方法,會執行onResume(),onNewIntent()方法,
此時還是處于同一個任務棧中。
3、singleTask
這種模式在跳轉之前先去檢查任務棧中是否有該執行個體,有就複用,沒有就建立
執行個體,任務棧中最多隻有一個該執行個體。解決了任務棧中共享同一個activity執行個體。
注意:如果任務棧中有該執行個體,則将該執行個體移動到棧的頂部,并且該執行個體前面的
其他執行個體對象則從棧中全部移除
4、singleInstance
這種模式基本與singleTask一緻,但是唯一不同點是,activity所在的任務棧有且
隻有一個activity,如果涉及到其它activity,則将該activity移動到其它任務棧,
即:一個任務棧最多隻有一個activity執行個體,activity執行個體在application中共享
同一個對象,使用之前先去檢測是否有該執行個體對象,沒有則建立,有就複用。
總結: