Android activity 啟動模式小結

2021-09-24 06:21:05 字數 1171 閱讀 4352

android 的啟動模式兩種控制方法:

1.可以通過清單檔案控制,android:launchmode

2.通過intent.addflags實現

兩種啟動方式的優先順序是:**優先,即第二種優先於第一種

一.通過清單檔案控制的有四種啟動模式:

1.standar 標準模式,啟動多少就建立多少個activity例項

2.singletop 棧頂復用模式,簡單的說就是棧頂已經有了這個activity,再次啟動這個activty的時候,系統不會為其建立新的例項。舉個例子:a為standar,b為singletop ,啟動a後,再啟動b,再啟動b後,任務棧還是ab,此時再次啟動a,再啟動b,任務就是abab,這種啟動方式只關心top是不是重複,不關心棧內會不會重複

4.singleinstance 特殊的singletask 除了有singletask的特性外,加強了一點就是只能單獨的執行在乙個任務棧中。舉個例子,a為standard,d為singleinstance,啟動a,啟動d,再啟動a,現在前台的任務棧為aa,後台的任務棧為d,如果後退,應該aa退完,然後再來退d

使用場景:

1.standar :一般場景使用

2.singletop:聊天對話場景

3.singletask:首頁

4.singleinstance:登入頁面

二.通過intent addflags指定啟動模式(這個摘抄《android藝術開發探索》的)

1.intent.flag_activity_new_task:效果和上面的singletask相同

2.intent.flag_activity_single_top:效果和上面的singletop相同

3.intent.flag_activity_clear_top:一般和intent.flag_activity_new_task配合使用,singletask的效果,不過如果被啟動的activity的launchmode為standar ,那麼它自己和在它棧頂的都得清除,重新new乙個例項放在棧頂

4.intent.flag_activity_exclude_from_recents:等同在xml中指定android:excludefromrecents = "true",作用是不希望這個activity在歷史的列表中(這個表示不懂,不過看到乙個還不錯的介紹 

主要參考: 

《android開發藝術探索》 

android activity啟動模式

1.標準模式 standrad 沒啟動乙個activity,都會建立乙個activity例項,放入回退棧的內部 2.單頂模式 singletop 當啟動launchmode是 singletop的時候,系統會先判斷棧頂是不是要啟動的那個activity例項,如果是,則不會建立新的例項,直接讓棧頂直接...

Android Activity啟動模式

在androidmanifest.xml中配置 android name mainactivity android launchmode standard 有以下四種 standard 預設模式,每次通過intent啟動activity時都會建立乙個新的activity例項,並放入任務棧中。sing...

android Activity切換動畫

今天準備比賽的時候 遇到了這個問題。查了些資料總結了下。主要是通過 android theme 標籤來實現 android theme style 那麼就需要自己寫style風格檔案 如下 這裡之所以寫成2style個是為了解耦然後自己寫下anim anim enter anim anim exit...