詳解Android中Activity的啟動(dòng)模式及應(yīng)用場景
今天給大家介紹下安卓開發(fā)中不得不涉及的Activity啟動(dòng)模式及應(yīng)用場景。
Activity一共有四種啟動(dòng)模式,分別是Standard模式、SingleTop模式、SingleTask模式以及SingleInstance模式,默認(rèn)不主動(dòng)設(shè)置的情況下是Standard模式。
- Standard模式: 只要?jiǎng)?chuàng)建了Activity的實(shí)例,一旦啟動(dòng)后就會(huì)向任務(wù)棧中添加該實(shí)例,退出Activity后會(huì)任務(wù)棧中銷毀該實(shí)例,即調(diào)用finish() 方法。
例如當(dāng)前依次啟動(dòng)了ActvivtyA——>ActvivtyB——>ActvivtyC,ActvivtyC為Standard模式。此時(shí)再次啟動(dòng)ActvivtyC,任務(wù)棧中會(huì)一直將該實(shí)例加入當(dāng)前任務(wù)棧中:
使用場景: 默認(rèn)啟動(dòng)模式,如果沒有特殊功能的頁面都可使用該模式。
- SingleTop模式: 該模式和Standard模式幾乎一致,只要有新的實(shí)例就向任務(wù)棧中添加實(shí)例,唯一的區(qū)別是僅當(dāng)當(dāng)前任務(wù)棧棧頂?shù)膶?shí)例和當(dāng)前啟動(dòng)的目標(biāo)實(shí)例是同一個(gè)Activty的時(shí)候采取復(fù)用模式,不再創(chuàng)建新的實(shí)例。
例如當(dāng)前依次啟動(dòng)了ActvivtyA——>ActvivtyB——>ActvivtyC,ActvivtyC為SingleTop模式。此時(shí)再次啟動(dòng)ActvivtyC,任務(wù)棧不會(huì)再去添加一個(gè)ActvivtyC實(shí)例,會(huì)復(fù)用當(dāng)前棧頂?shù)腁ctvivtyC。
使用場景: 默認(rèn)啟動(dòng)模式,如果沒有特殊功能的頁面都可使用該模式。
- SingleTop模式: 該模式和Standard模式幾乎一致,只要有新的實(shí)例就向任務(wù)棧中添加實(shí)例,唯一的區(qū)別是僅當(dāng)當(dāng)前任務(wù)棧棧頂?shù)膶?shí)例和當(dāng)前啟動(dòng)的目標(biāo)實(shí)例是同一個(gè)Activty的時(shí)候采取復(fù)用模式,不再創(chuàng)建新的實(shí)例。
例如當(dāng)前依次啟動(dòng)了ActvivtyA——>ActvivtyB——>ActvivtyC,ActvivtyC為SingleTop模式。此時(shí)再次啟動(dòng)ActvivtyC,任務(wù)棧不會(huì)再去添加一個(gè)ActvivtyC實(shí)例,會(huì)復(fù)用當(dāng)前棧頂?shù)腁ctvivtyC。
使用場景: 一些常駐的頁面,例如APP首頁之類的頁面。
- SingleInstance模式: 由名字可知,它是一個(gè)單例模式。和SingleTask模式有點(diǎn)類似,區(qū)別在于SingleTask模式僅僅是在當(dāng)前棧中單例,而SingleInstance模式是整個(gè)App中單例,啟動(dòng)這類模式的Activity時(shí),會(huì)創(chuàng)建一個(gè)單獨(dú)的任務(wù)棧。
例如當(dāng)前依次啟動(dòng)了ActvivtyA——>ActvivtyB——>ActvivtyC——>ActvivtyD,ActvivtyD為SingleInstance模式,那么它是單獨(dú)在一個(gè)任務(wù)棧中的。
使用場景: 其實(shí)這類模式在常用的應(yīng)用中使用較少,一般打電話的場景會(huì)用到。
總結(jié): 不同功能的頁面需要匹配到不同的啟動(dòng)模式,一些特殊的需求可能會(huì)有不同的跳轉(zhuǎn),這時(shí)配合這四種模式能夠得到有效解決。特別需要注意在使用SingleTop 、SingleTask模式的時(shí)候由于是復(fù)用模式需要在該Activity重寫onNewIntent方法去重新獲取新數(shù)據(jù)。
好了,以上便是Activity的啟動(dòng)模式及應(yīng)用場景的全部內(nèi)容,希望對(duì)大家有所幫助!
到此這篇關(guān)于詳解Android中Activity的啟動(dòng)模式及應(yīng)用場景的文章就介紹到這了,更多相關(guān)Android Activity啟動(dòng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android調(diào)用系統(tǒng)圖庫獲取圖片的方法
這篇文章主要為大家詳細(xì)介紹了Android調(diào)用系統(tǒng)圖庫獲取圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-0813問13答全面學(xué)習(xí)Android View繪制
這篇文章主要為大家詳細(xì)介紹了Android View繪制,13問13答幫助大家全面學(xué)習(xí)Android View繪制,感興趣的小伙伴們可以參考一下2016-03-03Android自定義listview布局實(shí)現(xiàn)上拉加載下拉刷新功能
這篇文章主要介紹了Android自定義listview布局實(shí)現(xiàn)上拉加載下拉刷新功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-12-12Android自定義FloatingText仿點(diǎn)贊+1特效
這篇文章主要為大家詳細(xì)介紹了Android自定義FloatingText仿點(diǎn)贊+1特效,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03