Activity的啟動模式及應用場景

2021-07-31 07:22:16 字數 1139 閱讀 6488

標籤(空格分隔):activity

1.standard這是預設模式,每次啟用activity時都會建立activity例項,並放入任務棧中。使用場景:大多數activity

startactivity activity-a ——>activity-b——>activity-c

back activity-c ——>activity-b——>activity-a

2.singletop

3.singletask如果在棧中已經有該activity的例項,就重用該例項(會呼叫例項的 onnewintent() )。重用時,會讓該例項回到棧頂,因此在它上面的例項將會被移出棧。如果棧中不存在該例項,將會建立新的例項放入棧中。使用場景如瀏覽器的主介面。不管從多少個應用啟動瀏覽器,只會啟動主介面一次,其餘情況都會走onnewintent,並且會清空主介面上面的其他頁面。

startactivity activity-a ——>activity-b——>activity-a(移除activity-a的例項)

back activity-a——>退出程式

4.singleinstance如果在棧中已經有該activity的例項,就重用該例項(會呼叫例項的 onnewintent() )。重用時,會讓該例項回到棧頂,因此在它上面的例項將會被移出棧。如果棧中不存在該例項,將會建立新的例項放入棧中。使用場景如瀏覽器的主介面。不管從多少個應用啟動瀏覽器,只會啟動主介面一次,其餘情況都會走onnewintent,並且會清空主介面上面的其他頁面。

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

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

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

Activity的啟動模式及應用例項

1 standrad模式 每次啟用activity時 startactivity 都建立activity例項,並放入任務棧。2 singletop模式 如果某個activity自己啟用自己,即任務棧棧頂就是該activity,則不需要建立,其餘情況都要建立activity例項 作用 提高使用者體驗性...

activity 啟動模式

在android的中activity 有4種啟動方式 standard singletop singletask singleinstance 下面就分輕重點講講這些啟動方式。1 standard啟動方式 這種方式也是系統預設的。說的簡單點,我們在使用startactivity 方法的時候,系統就會...

activity啟動模式

1 對於使用standard 模式的活動,系統不會在乎這個活動是否已經在返回棧中存在,每次啟動都會建立該活動的乙個新的例項。例如a啟動a,a再接著啟動a,a繼續啟動a,然後再分別出棧,如圖所示 2 當活動的啟動模式指定為 singletop,在啟動活動時如果發現返回棧的棧頂已經是該活動,則認為可以直...