1. 程式人生 > 其它 >Activity----活動啟動模式

Activity----活動啟動模式

技術標籤:Android

Android的啟動模式在<actuvity android:launchMode屬性></activity> 來選擇啟動模式
一共有四種啟動模式:standard,singleTop,singleTask,singleInstance四種

standard

預設的啟動模式,每當啟動一個新的活動,他就會在返回棧中入棧,並處於棧頂位置。在此模式下系統不會在乎這個活動是否已經在返回棧中存在,每次啟動都會建立該活動的一個例項。
在這裡插入圖片描述

singleTop

在啟動活動時如果發現返回棧的棧頂已經是該活動,則認為可以直接使用他,不會在建立新的活動例項

 <
activity
android:name=".MainActivity" android:launchMode="singleTop">
<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER"
/>
</intent-filter> </activity>

singleTask

當活動的啟動模式指定為singleTask,每次啟動該活動時系統會首先會在返回棧中檢查是否存在該活動的例項,如果發現已經存在則直接使用該例項,並把這個活動之上的所以活動統統出棧,如果沒有發現就會建立一個新的活動例項。

<activity android:name=".MainActivity"
            android:launchMode="singleTask">
            <
intent-filter
>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>

singleInstance

此模式會啟用一個新的返回棧來管理這個活動,每一個程式都有自己的返回棧,同一個活動在不同的返回棧中入棧必然是建立了新的例項,會有一個單獨的返回棧來管理這個活動,不管是哪個應用程式來訪問這個活動,都共用的同一個返回棧,解決共享活動例項的問題。

<activity android:name=".MainActivity"
            android:launchMode="singleInstance">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
</activity>