Andriod活動的啟動模式及使用場景

2021-08-20 19:42:15 字數 1219 閱讀 9663

activity有四種載入模式:standard(預設), singletop,singletask和singleinstance。可以在androidmanifest.xml中通過給activity標籤指定android:launchmode屬性來選擇啟動模式。

standard是活動預設的啟動模式,在不進行顯示指定的情況下,所有的活動都會自動使用這種模式,在該模式下,每當啟動了乙個新的活動,它就會返回棧中入棧,並處於棧頂的位置。對於使用standard模式的活動,系統不會在乎這個活動是否已經在返回棧中存在,每次都會建立該活動的乙個新的例項。

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

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

當活動的啟動模式指定為singleinstance時,會有乙個單獨的返回棧來管理這個活動,不管是哪個應用程式來訪問這個活動,都公用的同乙個返回棧,也就解決了共享活動例項的問題。

singletop適合接收通知啟動的內容顯示頁面。例如,某個新聞客戶端的新聞內容頁面,如果收到10個新聞推送,每次都開啟乙個新聞內容頁面是很煩人的。

singletask適合作為程式入口點。例如瀏覽器的主介面。不管從多少個應用啟動瀏覽器,只會啟動主介面一次,其餘情況都會走onnewintent,並且會清空主介面上面的其他頁面。之前開啟過的頁面,開啟之前的頁面就ok,不再新建。

singleinstance適合需要與程式分離開的頁面。例如鬧鈴提醒,將鬧鈴提醒與鬧鈴設定分離。singleinstance不要用於中間頁面,如果用於中間頁面,跳轉會有問題,比如:a -> b (singleinstance) -> c,完全退出後,在此啟動,首先開啟的是b。

活動的啟動模式

一共4種,standard,singletop,singletask,singleinstance 預設啟動模式是standard,使用此模式的活動,系統不會在乎它是否在返回棧中已存在,每次啟動都會建立該活動的乙個新的例項 singletop 啟動活動如果發現返回棧的棧頂已是該活動,就直接使用它,不...

活動的啟動模式(筆記)

活動的啟動模式 1.standard 2.singletop 3.singletask 4.singleinstance 1.standard 這是活動預設的啟動模式。在這個模式中,系統不會在乎這個活動是否已經存在返回棧中,每次啟動都會建立該活動的乙個新的例項。即不斷啟動這個活動5次,就會有5個例項...

android 活動的啟動模式

分四種 standard,singletop singletask singleinstance。可以在androidmanifest.xml中通過給標籤指定android launchmode屬性來選擇啟動模式 standard是活動預設的啟動模式,在不進行顯式指定的情況下,所有活動都會自動使用這...