安卓學習筆記 Activity的四種啟動模式

2021-09-01 13:21:47 字數 856 閱讀 1170

standard, singletop, singletask, singleinstance

在 androidmanifest.xml 中給 activity 標籤指定 android: lunchmode 屬性

activity的預設啟動模式

每啟動乙個activity就會在棧頂建立乙個新的例項。

缺點:當activity已經位於棧頂時,而再次啟動activity時還需要在建立乙個新的例項,不能直接復用。

只有activity不在 棧頂 的時候, 才會建立 activity的例項, 否則會直接復用棧頂activity

缺點:如果activity並未處於棧頂位置,則可能還會建立多個例項。

使activity在整個應用程式中只有乙個例項。

如果在需要建立activity的時候, 發現 棧 中已存在該activity例項, 則直接啟動該例項,

在其上的activity 都會被出棧.

指定為singleinstance 的活動, 在被建立時會產生乙個全新的返回棧來管理這個活動.

注意: 該例項有且僅有乙個

(singletask模式中, 如果指定了不同的 taskaffinity, 也會產生新的返回棧)

應用場景: 如果應用a的activity x可能會被應用b, 應用c 開啟, 那麼activity x使用singleinstance模式, 將會分別為不同應用開啟的activity x, 並且不會影響到其他應用的工作

安卓學習之Activity的跳轉

顯示意圖非常明顯看下面的 第乙個引數是上下文資訊,第二個引數是跳轉的位元組碼 intent intent newintent activitydemo.class startactivity intent 顯示意圖跳轉很快,不過只能顯示自己的介面 隱式意圖沒有明確指出元件資訊,需要靠intentfi...

安卓學習筆記之activity生命週期

最近在學習service,然後結合service,把activity的生命週期又梳理一遍。activity共七個生命週期,分別是 oncreate onstart onresume onpause onrestart onstop ondestory。activity在開始執行時,呼叫順序是 onc...

安卓中管理Activity

安卓中一般在baseactivity 管理所有的activity 因為所有的activity 繼承自baseactivity 步驟 1 在baseactivity new 乙個arraylist 儲存activity private listallactivity new arraylist 2.寫...