Activity的四種啟動模式

2021-08-17 08:58:15 字數 928 閱讀 3664

在androidmenifest.xml中通過給標籤指定android:launchmode屬性來選擇啟動模式。

1.standard模式(預設啟動模式)

standard模式下,每次啟動乙個新的活動,它就會在返回棧中入棧,並處於棧頂的位置。

使用standard模式的活動,系統不會在乎這個活動是否已經在棧中存在,每次啟動都會建立該活動的乙個新的例項。

2.singletop

當活動的啟動模式為singletop時,在啟動活動時如果發現返回棧的棧頂已經是該活動,則可以直接使用它,不會再建立新的活動例項。

但是如果singletop模式的活動沒有在棧頂,則還會建立該活動的新的例項。

3.singletask

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

4.singleinstance

singleinstance不同於前三種,設定為singleinstance模式的活動會啟用乙個新的返回棧來管理這個活動。而前三種模式都在同乙個返回棧中。

singleinstance模式存在的意義是什麼呢?假設我們的程式中有乙個活動是允許其他應用程式呼叫的,如果我們要實現其他程式和我們的程式可以共享這個活動的例項,應該如何實現呢?這時使用前三種模式肯定是做不到的,因為每個應用程式都會有自己的返回棧,同乙個活動在不同的返回棧中入棧時必然是建立了新的例項,此時就要用到singleinstance了,在singleinstance模式下會有乙個單獨的返回棧來管理這個活動,不管是哪個應用程式來訪問這個活動,都共用的同乙個返回棧,也就解決了共享活動例項的問題。

Activity四種啟動模式

launchmode在多個activity跳轉的過程中扮演著重要的角色,它可以決定是否生成新的activity例項,是否重用已存在的activity例項,是否和其他activity例項公用乙個task裡。這裡簡單介紹一下task的概念,task是乙個具有棧結構的物件,乙個task可以管理多個acti...

Activity四種啟動模式

activity的啟動模式可以通過androidmanifest.xml檔案中的元素的屬性來指定,一共有4中模式 android name activitymain android launchmode singletask 1 standard 2 singletop 3 singletask 4...

Activity 四種啟動模式

activity有四種載入模式 standard 預設 singletop,singletask和 singleinstance。以下逐一舉例說明他們的區別 一 standard activity的預設載入方法,即使某個activity在task棧中已經存在,另乙個activity通過intent跳...