Android學習筆記—第九章 Activity的加載模式

第九章 Activity的加載模式

  1. task:類似於棧,每次打開界面會創建一個task,然後將這開啓的界面放入到該task中。

    (1)standard:默認模式

    每次都會創建一個新的界面,將該界面加入task中

    (2)singleTop:棧頂單實例模式

    a. 如果目標Activity不存在,創建一個新的Activity,存入到task中

    b. 如果目標Activity已經存在,並且處於棧頂,不會再創建新的Activity

    c. 如果目標Activity已經存在,但不處於棧頂,創建一個新的Activity存放到task中

    (3)singleTask:棧中單實例

    a. 如果目標Activity不存在,創建一個新的Activity,存入到task中

    b. 如果目標Activity已經存在,並且處於棧頂,不會再創建新的Activity

    c. 如果目標Activity已經存在,但是處於棧中,會將目標Activity之上的所有Activity銷燬

    (4)singleInstance:全局單實例

    a. 如果目標Activity不存在,創建一個新的task和新的Activity,將Activity存入到task中

    b. 如果目標Activity已經存在,將該Activity所在的task移動到前臺進行展示

  2. 單實例(單例,單態)SingleTon

    (1)聲明一個類,私有化其構造方法

    private SingleTon(){}

    (2)創建一個該類類型的對象

    private static SingleTon singleTon = new SingleTon();

    (3)public static SingleTon getInstance(){

            return singleTon;

         }

    (4)測試

  3. Intent標誌位

    //設置Intent標誌位

    intent.setFlags(Intent.FLAG_ACTIVITY_XXX);

    a. Intent.FLAG_ACTIVITY_SINGLE_TOP:

    與加載模式中singleTop(棧頂單實例)類似

    b. Intent.FLAG_ACTIVITY_CLEAR_TOP:

    效果與加載模式中singleTask類似,將目標Activity之上的所有Activity都銷燬(包括自身),然後創建一個新的Activity

    c. Intent.FLAG_ACTIVITY_NEW_TASK:

    備註:如果在service中通過startActivity跳轉界面,必須設置Intent標誌位。

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