標籤:android intent activity載入模式 標誌位
第九章 Activity的載入模式
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移動到前台進行展示
單一實例(單例,單態)SingleTon
(1)聲明一個類,私人化其構造方法
private SingleTon(){}
(2)建立一個該類類型的對象
private static SingleTon singleTon = new SingleTon();
(3)public static SingleTon getInstance(){
return singleTon;
}
(4)測試
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標誌位。
Android學習筆記—第九章 Activity的載入模式