Activity的啟動模

2021-07-12 06:18:27 字數 866 閱讀 2422

四種啟動模式:standard,singletop,singletask,singleinstance

通過在androidmanifest.xml的標籤中指定android:launchmode屬性來設定啟動模式

standard

standard是活動的預設啟動模式,我們知道android是通過棧來管理活動的,而此模式,系統不會驗證此活動是否已經存在都會在棧頂建立新的活動例項!

例如:活動本身啟動自己,啟動了幾次我們就要銷毀幾次才能關閉所有的活動。這些同樣的活動在棧中也是有不同的位置名稱的,可以確定是新的活動例項。

singletop

如果指定了singletop模式,在啟動活動時系統會檢測棧頂是否已經有該活動,如果有則直接使用,並不會建立新的活動例項了。

但是如果要啟動的這個活動例項沒有在棧頂位置,此時啟動此活動例項的時候還是會重新建立此活動的例項!從他的命名top就可以看出這個意思!

singletask

使用singletask模式,系統就會檢測棧中是否已經有此活動,如果有則直接使用並把這個活動上的所有活動全部清除棧,沒有則新建此活動。

singleinstance

singleinstance是最複雜也是最特殊的模式了,如果活動指定了singleinstance模式,那麼系統會啟用乙個新的棧來管理這個活動。(其實如果singletask模式指定了不同的taskaffinity,系統也會啟動新的棧)

如果在工作中需要多個應用來訪問此活動例項,就需要用到此模式,其他三種啟動模式是無法做到的。因為每個應用都會有自己的棧,同乙個活動在不同的棧入棧時肯定會新建例項,從而導致資料不一致。而此模式新建的乙個單獨的棧來管理此活動,多個應用訪問時就會共用同乙個棧中例項,並不會新建例項了,從而解決了資料不一致的問題。

Android歷程 Activity啟動模式

在android中的activity包含有四種啟動模式,分別為standard singletop singletask與singleinstance他們之間彼此聯絡,有各有各的特點 下面進行一下細緻的了解 1 standard standard為標準啟動模式,每次啟用時都會建立乙個新的activi...

Android基礎 Activity啟動模式

在android中,活動的管理是通過返回棧來控制的,每當啟動乙個新的活動,它就會在返回棧中入棧。活動的啟動模式就是控制活動進入返回棧的方式,包括standard singletop singletask和singleinstance四種。每次都會在返回棧頂層加入新的活動,standard是活動預設的...

Android中Activity的啟動模式

之所以寫這篇部落格,也是由於博主本人對這個知識點掌握的不是很牢靠,總是把activity弄混,這裡系統的介紹一下,也旨在為大家分享。正如我們所看到的那樣,google的那些大神門不會無緣無辜的搞出乙個啟動模式來,存在即是合理的。那麼,具體原因到底是什麼呢?其實很簡單,android中預設的啟動模式,...