詳解Android中Activity的啟動模式及應用場景
今天給大家介紹下安卓開發(fā)中不得不涉及的Activity啟動模式及應用場景。
Activity一共有四種啟動模式,分別是Standard模式、SingleTop模式、SingleTask模式以及SingleInstance模式,默認不主動設置的情況下是Standard模式。
- Standard模式: 只要創(chuàng)建了Activity的實例,一旦啟動后就會向任務棧中添加該實例,退出Activity后會任務棧中銷毀該實例,即調(diào)用finish() 方法。
例如當前依次啟動了ActvivtyA——>ActvivtyB——>ActvivtyC,ActvivtyC為Standard模式。此時再次啟動ActvivtyC,任務棧中會一直將該實例加入當前任務棧中:

使用場景: 默認啟動模式,如果沒有特殊功能的頁面都可使用該模式。
- SingleTop模式: 該模式和Standard模式幾乎一致,只要有新的實例就向任務棧中添加實例,唯一的區(qū)別是僅當當前任務棧棧頂?shù)膶嵗彤斍皢拥哪繕藢嵗峭粋€Activty的時候采取復用模式,不再創(chuàng)建新的實例。
例如當前依次啟動了ActvivtyA——>ActvivtyB——>ActvivtyC,ActvivtyC為SingleTop模式。此時再次啟動ActvivtyC,任務棧不會再去添加一個ActvivtyC實例,會復用當前棧頂?shù)腁ctvivtyC。

使用場景: 默認啟動模式,如果沒有特殊功能的頁面都可使用該模式。
- SingleTop模式: 該模式和Standard模式幾乎一致,只要有新的實例就向任務棧中添加實例,唯一的區(qū)別是僅當當前任務棧棧頂?shù)膶嵗彤斍皢拥哪繕藢嵗峭粋€Activty的時候采取復用模式,不再創(chuàng)建新的實例。
例如當前依次啟動了ActvivtyA——>ActvivtyB——>ActvivtyC,ActvivtyC為SingleTop模式。此時再次啟動ActvivtyC,任務棧不會再去添加一個ActvivtyC實例,會復用當前棧頂?shù)腁ctvivtyC。

使用場景: 一些常駐的頁面,例如APP首頁之類的頁面。
- SingleInstance模式: 由名字可知,它是一個單例模式。和SingleTask模式有點類似,區(qū)別在于SingleTask模式僅僅是在當前棧中單例,而SingleInstance模式是整個App中單例,啟動這類模式的Activity時,會創(chuàng)建一個單獨的任務棧。
例如當前依次啟動了ActvivtyA——>ActvivtyB——>ActvivtyC——>ActvivtyD,ActvivtyD為SingleInstance模式,那么它是單獨在一個任務棧中的。

使用場景: 其實這類模式在常用的應用中使用較少,一般打電話的場景會用到。
總結: 不同功能的頁面需要匹配到不同的啟動模式,一些特殊的需求可能會有不同的跳轉,這時配合這四種模式能夠得到有效解決。特別需要注意在使用SingleTop 、SingleTask模式的時候由于是復用模式需要在該Activity重寫onNewIntent方法去重新獲取新數(shù)據(jù)。
好了,以上便是Activity的啟動模式及應用場景的全部內(nèi)容,希望對大家有所幫助!
到此這篇關于詳解Android中Activity的啟動模式及應用場景的文章就介紹到這了,更多相關Android Activity啟動內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Android調(diào)用系統(tǒng)圖庫獲取圖片的方法
這篇文章主要為大家詳細介紹了Android調(diào)用系統(tǒng)圖庫獲取圖片,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-08-08
Android自定義listview布局實現(xiàn)上拉加載下拉刷新功能
這篇文章主要介紹了Android自定義listview布局實現(xiàn)上拉加載下拉刷新功能,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-12-12

