天天看點

Activity 四種啟動模式Activity 四種啟動模式

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的任務棧中,即同一個任務棧中。

Activity 四種啟動模式Activity 四種啟動模式

2、singleTop

這種模式類似與standard模式,但有一點不一樣,僅當跳轉的目标activity

處于棧的頂部時,此時不會建立新的執行個體,會複用棧的頂部activity執行個體,

即不會執行onCreate(),onStart()方法,會執行onResume(),onNewIntent()方法,

此時還是處于同一個任務棧中。

Activity 四種啟動模式Activity 四種啟動模式

3、singleTask

這種模式在跳轉之前先去檢查任務棧中是否有該執行個體,有就複用,沒有就建立

執行個體,任務棧中最多隻有一個該執行個體。解決了任務棧中共享同一個activity執行個體。

注意:如果任務棧中有該執行個體,則将該執行個體移動到棧的頂部,并且該執行個體前面的

其他執行個體對象則從棧中全部移除

Activity 四種啟動模式Activity 四種啟動模式

4、singleInstance

這種模式基本與singleTask一緻,但是唯一不同點是,activity所在的任務棧有且

隻有一個activity,如果涉及到其它activity,則将該activity移動到其它任務棧,

即:一個任務棧最多隻有一個activity執行個體,activity執行個體在application中共享

同一個對象,使用之前先去檢測是否有該執行個體對象,沒有則建立,有就複用。

Activity 四種啟動模式Activity 四種啟動模式

總結:

Activity 四種啟動模式Activity 四種啟動模式