Android的Activity四大啓動模式~

話說Android 基礎好使很重要的,今天看下Android的Activity四大啓動模式~

Android採用任務棧(Task)的方式來管理Activity的實例。當啓動一個應用時,Android就會爲之創建一個任務棧。啓動模式簡單地說就是Activity啓動時的策略,在AndroidManifest.xml中的標籤的android:launchMode屬性設置。啓動模式有4種,分別爲standard、singleTop、singleTask、singleInstance;

講解啓動模式之前,有必要先講解一下“任務棧”的概念。

一、Android下的任務棧

Android系統中的任務棧,類似於一個容器。用於管理所有的Activity實例。在存放Activity時,滿足“先進後出(First-In/Last-out)”的原則。先加入任務棧中的Activity會處於容器下面,後加入的處於容器上面,而從任務棧中取出Activity是從最頂端取出,最後取出的是最低端Activi圖:

先出棧的將會是Activity1,但是是Activity1先入棧的

二:Activity的4中啓動模式 

1、standard模式: 

standard是Activity默認的啓動模式,在不指定Activity啓動模式的情況下,所有Activity使用的都是standard模式。 

在standard模式下,每當啓動一個新的Activity,它就會進入任務棧,並處於棧頂的位置,對於使用standard模式的Activity,每次啓動都會創建一個新的實例。 

適用於大多數應用場景。 

每啓動一次項目都會新建一個Acxtivity,若按返回鍵則會返回三次,Activity將會按順序出棧。如下圖:

2、singleTop模式: 

singleTop模式與standard模式相似,不同的是,當啓動的Activity已經位於棧頂時,則直接使用它不創建新的實例。 

解決一個用戶體驗的問題,避免已經打開的頁面重複打開多次。 

3、singleTask模式: 

當Activity的啓動模式指定爲singleTask,每次啓動該Activity時,系統首先會檢查棧中是否存在該Activity的實例,如果發現已經存在則直接使用該實例,並將當前Activity之上的所有Activity出棧,如果沒有發現則創建一個新的實例。 

4、singleInstance模式: 

singleInstance模式加載Activity時,只會創建一個Activity實例,並且會使用一個全新的任務棧來裝載Activity實例。 

特點是在整個手機裏只有一個實例存在。 

如果要啓動的Activity不存在,系統會先創建一個新的任務棧,在創建該Activity的實例,並把該Activity加入棧頂。如果要啓動的Activity已經存在,無論位於哪個應用程序或者哪個任務棧中,系統都會把該Activity所有的任務棧轉到前臺,從而使該Activity顯示出來。如下圖: 

希望大家能夠喜歡~~~點贊喲~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章