activity的啓動模式解析

0、目錄

一、爲什麼需要啓動模式

二、啓動模式有哪些

三、如何設置啓動模式

一、爲什麼需要啓動模式

爲什麼activity需要啓動模式呢?

默認情況下,每創建一個activity實例就會把該實例放入任務棧,如果多次啓動同一個activity,那麼系統就會創建多個實例,並把所有實例一一放入任務棧中,當點擊back返回鍵時,這些activity會一一回退。多次啓動同一個activity,系統重複創建多個實例,顯然是不妥的,我們期望即便多次啓動同一個activity,只創建一個實例就好了,所以Android在設計時就有了啓動模式。

二、啓動模式有哪些

啓動模式有四種,standard, singleTop, singleTask, singleInstance.

具體總結如下:

應用場景:

 

三、如何設置啓動模式

啓動模式的設置有兩種方法

    方法一:在AndroidMenifest的Activity標籤下設置launchMode屬性。

              如:android:launchMode="singleTask"

    方法二:通過在Intent中設置標誌位

             如:Intent intent = new Intent(this, xxx.class);

                    intent.addFlags(Intent.FALG_ACTIVITY_NEW_TASK);

兩種方式都可以設置activity的啓動模式,但是二者也有一定的區別。優先級上,方法二的優先級高於方法一,即當兩種設置方式同時存在時,以第二種方法爲準。

activity標誌位說明:

         FLAG_ACTIVITY_NEW_TASK作用是爲activity指定singleTask啓動模式

        FLAG_ACTIVITY_SINGLE_TOP作用是爲activity指定singleTop啓動模式

        FLAG_ACTIVITY_CLEAR_TOP作用是具有此標誌位的activity,在它啓動時,同一任務棧中所有位於它上面的activty都要被移出任務棧。

總結如下:

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