您好,登錄后才能下訂單哦!
第九章 Activity的加載模式
task:類似于棧,每次打開界面會(huì)創(chuàng)建一個(gè)task,然后將這開啟的界面放入到該task中。
(1)standard:默認(rèn)模式
每次都會(huì)創(chuàng)建一個(gè)新的界面,將該界面加入task中
(2)singleTop:棧頂單實(shí)例模式
a. 如果目標(biāo)Activity不存在,創(chuàng)建一個(gè)新的Activity,存入到task中
b. 如果目標(biāo)Activity已經(jīng)存在,并且處于棧頂,不會(huì)再創(chuàng)建新的Activity
c. 如果目標(biāo)Activity已經(jīng)存在,但不處于棧頂,創(chuàng)建一個(gè)新的Activity存放到task中
(3)singleTask:棧中單實(shí)例
a. 如果目標(biāo)Activity不存在,創(chuàng)建一個(gè)新的Activity,存入到task中
b. 如果目標(biāo)Activity已經(jīng)存在,并且處于棧頂,不會(huì)再創(chuàng)建新的Activity
c. 如果目標(biāo)Activity已經(jīng)存在,但是處于棧中,會(huì)將目標(biāo)Activity之上的所有Activity銷毀
(4)singleInstance:全局單實(shí)例
a. 如果目標(biāo)Activity不存在,創(chuàng)建一個(gè)新的task和新的Activity,將Activity存入到task中
b. 如果目標(biāo)Activity已經(jīng)存在,將該Activity所在的task移動(dòng)到前臺(tái)進(jìn)行展示
單實(shí)例(單例,單態(tài))SingleTon
(1)聲明一個(gè)類,私有化其構(gòu)造方法
private SingleTon(){}
(2)創(chuàng)建一個(gè)該類類型的對(duì)象
private static SingleTon singleTon = new SingleTon();
(3)public static SingleTon getInstance(){
return singleTon;
}
(4)測試
Intent標(biāo)志位
//設(shè)置Intent標(biāo)志位
intent.setFlags(Intent.FLAG_ACTIVITY_XXX);
a. Intent.FLAG_ACTIVITY_SINGLE_TOP:
與加載模式中singleTop(棧頂單實(shí)例)類似
b. Intent.FLAG_ACTIVITY_CLEAR_TOP:
效果與加載模式中singleTask類似,將目標(biāo)Activity之上的所有Activity都銷毀(包括自身),然后創(chuàng)建一個(gè)新的Activity
c. Intent.FLAG_ACTIVITY_NEW_TASK:
備注:如果在service中通過startActivity跳轉(zhuǎn)界面,必須設(shè)置Intent標(biāo)志位。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。