詳解Android中Activity的啟動(dòng)模式及應(yīng)用場(chǎng)景
今天給大家介紹下安卓開發(fā)中不得不涉及的Activity啟動(dòng)模式及應(yīng)用場(chǎ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ù)棧中:

使用場(chǎng)景: 默認(rèn)啟動(dòng)模式,如果沒(méi)有特殊功能的頁(yè)面都可使用該模式。
- 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。

使用場(chǎng)景: 默認(rèn)啟動(dòng)模式,如果沒(méi)有特殊功能的頁(yè)面都可使用該模式。
- 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。

使用場(chǎng)景: 一些常駐的頁(yè)面,例如APP首頁(yè)之類的頁(yè)面。
- 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ù)棧中的。

使用場(chǎng)景: 其實(shí)這類模式在常用的應(yīng)用中使用較少,一般打電話的場(chǎng)景會(huì)用到。
總結(jié): 不同功能的頁(yè)面需要匹配到不同的啟動(dòng)模式,一些特殊的需求可能會(huì)有不同的跳轉(zhuǎn),這時(shí)配合這四種模式能夠得到有效解決。特別需要注意在使用SingleTop 、SingleTask模式的時(shí)候由于是復(fù)用模式需要在該Activity重寫onNewIntent方法去重新獲取新數(shù)據(jù)。
好了,以上便是Activity的啟動(dòng)模式及應(yīng)用場(chǎng)景的全部?jī)?nèi)容,希望對(duì)大家有所幫助!
到此這篇關(guān)于詳解Android中Activity的啟動(dòng)模式及應(yīng)用場(chǎng)景的文章就介紹到這了,更多相關(guān)Android Activity啟動(dòng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android個(gè)人手機(jī)通訊錄開發(fā)詳解
在本篇文章里小編給大家分享了關(guān)于Android個(gè)人手機(jī)通訊錄開發(fā)的步驟和相關(guān)源碼,有需要的朋友們學(xué)習(xí)下。2019-02-02
Android XRecyclerView實(shí)現(xiàn)多條目加載
這篇文章主要為大家詳細(xì)介紹了Android XRecyclerView實(shí)現(xiàn)多條目加載效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
Android使用View Animation實(shí)現(xiàn)動(dòng)畫加載界面
這篇文章主要為大家詳細(xì)介紹了Android使用View Animation實(shí)現(xiàn)動(dòng)畫加載界面的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
Android平臺(tái)中實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的5種方式
這篇文章主要為大家分享了介紹了Android平臺(tái)中實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)技術(shù)的5種方式,供大家學(xué)習(xí),感興趣的小伙伴們可以參考一下2016-06-06
Android 實(shí)現(xiàn)滑動(dòng)的六種方式
這篇文章主要給大家分享的是Android 實(shí)現(xiàn)滑動(dòng)的六種方式,分別是layout、scrollBy、offsetLeftAndRight offsetTopAndButton、LayoutParams、Scroller、平移動(dòng)畫,需要的朋友可以參考一下下面文章的具體內(nèi)容2021-11-11
Android貝塞爾曲線實(shí)現(xiàn)消息拖拽消失
這篇文章主要為大家詳細(xì)介紹了Android貝塞爾曲線實(shí)現(xiàn)消息拖拽消失,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01
Android應(yīng)用開發(fā)中數(shù)據(jù)的保存方式總結(jié)
這篇文章主要介紹了Android應(yīng)用開發(fā)中數(shù)據(jù)的保存方式總結(jié),包括對(duì)ROM、SD卡、SharedPreference這三種方式實(shí)現(xiàn)的核心代碼的精選,需要的朋友可以參考下2016-02-02
android studio生成aar包并在其他工程引用aar包的方法
本篇文章主要介紹了android studio生成aar包并在其他工程引用aar包的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
Android中ACTION_CANCEL的觸發(fā)機(jī)制與滑出子view的情況
這篇文章主要介紹了Android中ACTION_CANCEL的觸發(fā)機(jī)制與滑出子view的情況,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09

