Activity任務(wù)棧


通過(guò)Acitivty的xml標(biāo)簽來(lái)改變?nèi)蝿?wù)棧的默認(rèn)行為

  • 使用android:launchMode="standard|singleInstance|singleTask|singleTop"
    來(lái)控制Acivity任務(wù)棧挣柬。

任務(wù)棧是一種后進(jìn)先出的結(jié)構(gòu)盖奈。位于棧頂?shù)腁ctivity處于焦點(diǎn)狀態(tài),當(dāng)按下back按鈕的時(shí)候,棧內(nèi)的Activity會(huì)一個(gè)一個(gè)的出棧,并且調(diào)用其onDestory()方法。如果棧內(nèi)沒(méi)有Activity,那么系統(tǒng)就會(huì)回收這個(gè)棧,每個(gè)APP默認(rèn)只有一個(gè)棧,以APP的包名來(lái)命名.

standard:標(biāo)準(zhǔn)模式铅歼。每次啟動(dòng)一個(gè)Activity就會(huì)創(chuàng)建一個(gè)新的Activity實(shí)例,并將其壓入任務(wù)棧的棧頂,而不管這個(gè)Activity是否已經(jīng)存在。Activity的啟動(dòng)三回調(diào)(onCreate()->onStart()->onResume())都會(huì)執(zhí)行贮预。

singleTop:棧頂復(fù)用模式。這種模式下契讲,如果新的Activity已經(jīng)在任務(wù)棧的棧頂仿吞,那么此Activity不會(huì)被重新創(chuàng)建,而Activity的啟動(dòng)三回調(diào)就不會(huì)被執(zhí)行怀泊,同時(shí)Activity的onNewIntent()方法會(huì)被回調(diào)茫藏。如果Activity存在但不在棧頂误趴,那么會(huì)像standard模式一樣霹琼。

singleTask:棧內(nèi)復(fù)用模式。創(chuàng)建這樣的Activity的時(shí)候,系統(tǒng)會(huì)先確定它所需要的任務(wù)棧已經(jīng)創(chuàng)建枣申,否則先創(chuàng)建任務(wù)棧售葡,然后放入Activity,如果棧中已經(jīng)有這個(gè)Activity實(shí)例忠藤,那么這個(gè)Activity會(huì)被調(diào)到棧頂挟伙。onNewIntent(),并且會(huì)清理在當(dāng)前Activity上面的所有Activity(clear top)模孩。

singleInstance:加強(qiáng)版的singleTask模式尖阔,這種模式的Activity只能獨(dú)立于一個(gè)任務(wù)棧內(nèi),由于棧內(nèi)復(fù)用特性榨咐,后續(xù)請(qǐng)求都不會(huì)創(chuàng)建新的Activity介却,除非這個(gè)任務(wù)棧被系統(tǒng)銷(xiāo)毀了


使用場(chǎng)景:

  • singleTop適合接收通知啟動(dòng)的內(nèi)容顯示頁(yè)面。
    例如块茁,某個(gè)新聞客戶(hù)端的新聞內(nèi)容頁(yè)面齿坷,如果收到10個(gè)新聞推送,每次都打開(kāi)一個(gè)新聞內(nèi)容頁(yè)面是很煩人的数焊。

  • singleTask適合作為程序入口點(diǎn)永淌。
    例如瀏覽器的主界面。不管從多少個(gè)應(yīng)用啟動(dòng)瀏覽器佩耳,只會(huì)啟動(dòng)主界面一次遂蛀,其余情況都會(huì)走onNewIntent,并且會(huì)清空主界面上面的其他頁(yè)面干厚。

  • singleInstance應(yīng)用場(chǎng)景:
    鬧鈴的響鈴界面答恶。 你以前設(shè)置了一個(gè)鬧鈴:上午6點(diǎn)。在上午5點(diǎn)58分萍诱,你啟動(dòng)了鬧鈴設(shè)置界面悬嗓,并按 Home 鍵回桌面;在上午5點(diǎn)59分時(shí)裕坊,你在微信和朋友聊天包竹;在6點(diǎn)時(shí),鬧鈴響了籍凝,并且彈出了一個(gè)對(duì)話(huà)框形式的 Activity(名為 AlarmAlertActivity) 提示你到6點(diǎn)了(這個(gè) Activity 就是以 SingleInstance 加載模式打開(kāi)的)周瞎,你按返回鍵,回到的是微信的聊天界面饵蒂,這是因?yàn)?AlarmAlertActivity 所在的 Task 的棧只有他一個(gè)元素声诸, 因此退出之后這個(gè) Task 的棧空了退盯。如果是以 SingleTask 打開(kāi) AlarmAlertActivity彼乌,那么當(dāng)鬧鈴響了的時(shí)候泻肯,按返回鍵應(yīng)該進(jìn)入鬧鈴設(shè)置界面。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末慰照,一起剝皮案震驚了整個(gè)濱河市灶挟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌毒租,老刑警劉巖稚铣,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異墅垮,居然都是意外死亡惕医,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)算色,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)曹锨,“玉大人,你說(shuō)我怎么就攤上這事剃允∨婕颍” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵斥废,是天一觀(guān)的道長(zhǎng)椒楣。 經(jīng)常有香客問(wèn)我,道長(zhǎng)牡肉,這世上最難降的妖魔是什么捧灰? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮统锤,結(jié)果婚禮上毛俏,老公的妹妹穿的比我還像新娘。我一直安慰自己饲窿,他們只是感情好煌寇,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著逾雄,像睡著了一般阀溶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鸦泳,一...
    開(kāi)封第一講書(shū)人閱讀 51,578評(píng)論 1 305
  • 那天银锻,我揣著相機(jī)與錄音,去河邊找鬼做鹰。 笑死击纬,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的钾麸。 我是一名探鬼主播更振,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼炕桨,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了殃饿?” 一聲冷哼從身側(cè)響起谋作,我...
    開(kāi)封第一講書(shū)人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤芋肠,失蹤者是張志新(化名)和其女友劉穎乎芳,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體帖池,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡奈惑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了睡汹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肴甸。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖囚巴,靈堂內(nèi)的尸體忽然破棺而出原在,到底是詐尸還是另有隱情,我是刑警寧澤彤叉,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布庶柿,位于F島的核電站,受9級(jí)特大地震影響秽浇,放射性物質(zhì)發(fā)生泄漏浮庐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一柬焕、第九天 我趴在偏房一處隱蔽的房頂上張望审残。 院中可真熱鬧,春花似錦斑举、人聲如沸搅轿。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)介时。三九已至,卻和暖如春凌彬,著一層夾襖步出監(jiān)牢的瞬間沸柔,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工铲敛, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留褐澎,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓伐蒋,卻偏偏與公主長(zhǎng)得像工三,于是被迫代替她去往敵國(guó)和親迁酸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容