標籤(空格分隔):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,在啟動活動時如果發現返回棧的棧頂已經是該活動,則認為可以直...