Android activity 四大啓動模式

Android Activity’s Four LaunchMode

1、standard

  standard模式是默認的模式,可以不用再manifest文件裏面聲明。這種模式在應用中比較常見,當我們啓動一個standard模式的activity時,系統會將新的activity壓入啓動它的activity所在的棧裏面,當我們按回退鍵時在棧頂的activity就會出棧。實際上就是一般入棧出棧操作。

  • 啓動
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
    到這裏再開始點擊回退鍵
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
    再點一次就回到了主界面
    在這裏插入圖片描述

2、singleTop

  棧頂複用能夠避免同一個activity在棧頂重複出現,在一個程度上節約了內存控件,舉一個例子,當我們重通知欄裏面點擊一個信息,啓動一個activity,如果這個activity剛好在該棧的棧頂,那麼就可以複用這個activity,而不是又重新啓動一個一樣的activity。
在這裏插入圖片描述
進入在singleTop模式的activity
在這裏插入圖片描述
這裏我們再點擊“跳轉自己”,會發現並不會出現什麼情況,但是實際上他會執行如下回調方法

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
    }

當我們點擊第二個按鈕時,進入第五個activity,這個activity時standard模式,再點擊當前頁面按鈕。
在這裏插入圖片描述
這時會回到第五個activity,此時棧內是有兩個FourActivity,即兩個singleTop模式的activity。(不想截圖了-_-)
在這裏插入圖片描述
所以,singleTop模式只有再棧頂的時候纔不會被覆蓋,如果不在棧頂就可以被覆蓋,正如它的名字一樣,棧頂複用。

3、singleTask

  棧內複用就是隻要該activity再棧裏面,就不會出現與之相同的activity,原因是當你啓動相同的activity時,它會去複用之前的activity。並且將在被複用activity上面的所有activity出棧。這種模式多用在mainActivity。
在這裏插入圖片描述
在這裏插入圖片描述
點擊跳轉到MainActivity
在這裏插入圖片描述
在這裏插入圖片描述
這時再點擊返回按鈕,會直接回到桌面。說明此時MainActivity就在棧頂,並且棧內再沒有其他的activity了。
在這裏插入圖片描述
在這裏插入圖片描述

4、單例模式

  作爲棧內複用模式(singleTask)的加強版,打開該Activity時,直接創建一個新的任務棧,並創建該Activity實例放入新棧中。一旦該模式的Activity實例已經存在於某個棧中,任何應用再激活該Activity時都會重用該棧中的實例。點擊第四個按鈕。
在這裏插入圖片描述
在這裏插入圖片描述
此時我們可以看到出現兩個任務棧。這裏注意在manifest文件裏對應的activity標籤裏添加android:taskAffinity=“instance.test”,不然不會出現兩個任務棧。
在這裏插入圖片描述

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