亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Android task和back stack詳解一:概述

系統(tǒng) 2404 0

  一個(gè)應(yīng)用往往包含很多 activities .每個(gè) activity 應(yīng)圍繞著用戶可執(zhí)行的特定動作來設(shè)計(jì),并且可以啟動其它 activitie .例如,一個(gè) email 應(yīng)用可能可能有一個(gè)顯示新郵件列表的 activity .當(dāng)用戶選擇一個(gè)郵件,一個(gè)新的 activity 被打開以顯示郵件內(nèi)容.

  一個(gè) activity 也可以打開同一設(shè)備上存在于其它應(yīng)用的 activitie ,例如, 如果你的應(yīng)用想要發(fā)送一個(gè)郵件,你可以定義一個(gè) intent 來執(zhí)行一個(gè) "send" 動作并包含一些數(shù)據(jù),比如一個(gè)地址和一條信息.另一個(gè)應(yīng)用中的一個(gè)叫囂自己可以處理這種 intent activity 就被打開 ( 如果有多個(gè) activitie 支持同樣的 intent ,那么系統(tǒng)會讓用戶選擇一個(gè) ) .當(dāng) email 被發(fā)送后,你的 activity 被恢復(fù)并且看起來發(fā)送郵件的 activity 像是你的應(yīng)用的一部分.即使那個(gè) activitie 可能來自不同的應(yīng)用, Android 靠著把兩個(gè) activity 保存在同一個(gè)任務(wù)中來實(shí)現(xiàn)這種無縫的用戶體驗(yàn).

  一個(gè)任務(wù)是用戶在執(zhí)行某種工作時(shí)所交互的 activitie 的集合. activitie 放置 在一個(gè)棧 (" 后退棧 ") 中,按照打開的順序排列.

  設(shè)備的 Home 屏是大多數(shù)任務(wù)的開始場所.當(dāng)用戶觸摸在應(yīng)用啟動臺中的圖標(biāo) ( 或一個(gè) home 屏上的快捷方式 ) 時(shí),應(yīng)用的任務(wù)就來到了前臺.如果沒有這個(gè)應(yīng)用的已存在的任務(wù) ( 這個(gè)應(yīng)用最近沒有被使用 ) ,那么一個(gè)新的任務(wù)被創(chuàng)建并且這個(gè)應(yīng)用的 "main"activity 被作為棧的根 activity 打開.

  當(dāng)當(dāng)前的 activity 啟動了另一個(gè) activity ,新的 activity 被放置在棧頂并擁有焦點(diǎn).先前的 activity 依然保存在棧中,但是停止了.當(dāng)一個(gè) activity 停止時(shí),系統(tǒng)保存了它的用戶界的當(dāng)前狀態(tài).當(dāng)用戶后退按鈕時(shí),當(dāng)前的 activity 被從棧頂彈出 (activity 被銷毀了 ) 并且先前的 activity 被恢復(fù)了.棧中的 Activities 永不會被重新排列,只是入棧或出棧 當(dāng)被當(dāng)前 activity 啟動時(shí)就入棧,當(dāng)用戶使用后退按鈕離開它時(shí)就出棧.如此,后退棧也是一個(gè)后進(jìn)先出的棧.


下圖展示了工作棧的變化過程.

Android task和back stack詳解一:概述

  如果用戶繼續(xù)后退,那么棧中的各 activity 被彈出來展示上一個(gè),直到用戶退到 Home ( 或到達(dá)任務(wù)開始時(shí)運(yùn)行的那個(gè) activity) .當(dāng)所有的 activitie 都從棧種移除,任務(wù)就不再存在.

  一個(gè)任務(wù)是一個(gè)有聚合力的單元,它可以在用戶啟動一個(gè)新的任務(wù)或回到 home 屏?xí)r被整體地移到后臺.當(dāng)位于后臺時(shí),任務(wù)中的所有的 activitie 都處于停止,但是任務(wù)的后退棧卻保存完整—當(dāng)任務(wù)被另一個(gè)任務(wù)取代時(shí),僅僅是失去了焦點(diǎn).見圖2:

Android task和back stack詳解一:概述

2. 兩個(gè)任務(wù):任務(wù) B 到了前臺,任務(wù) A 于是被打入后臺,伺機(jī)恢復(fù).


  一個(gè)任務(wù)可以再回到前臺,于是用戶可以獲得他離開時(shí)的模樣.舉個(gè)例子,當(dāng)前的任務(wù) ( 任務(wù) A) 有三個(gè) activitie 在其棧中—兩個(gè)在下面.用戶按下 Home 按鈕,然后又啟動一個(gè)新的應(yīng)用.當(dāng) Home 屏出現(xiàn)時(shí),任務(wù) A 到了后臺.當(dāng)新應(yīng)用啟動時(shí),系統(tǒng)為這個(gè)應(yīng)用開始了一個(gè)任務(wù) ( 任務(wù) B) .當(dāng)使用完新應(yīng)用時(shí),用戶再次回到了 Home 屏然后選擇了啟動任務(wù)A的那個(gè)應(yīng)用.現(xiàn)在,任務(wù) A 來到了前臺—其棧中所有的三個(gè) activitie 都完整保留并且位于頂層的 activity 被恢復(fù).此時(shí),用戶也可以再回到 home 屏然后選擇任務(wù)B的應(yīng)用于是回到任務(wù)B ( 或通過長按 Home 按鈕以顯示最近的任務(wù)然后選擇它 )

注: 多個(gè)任務(wù)可以同時(shí)存在于后臺.然而,如果用戶在同一時(shí)刻運(yùn)行多個(gè)后臺任務(wù),系統(tǒng)可能會銷毀后臺 activitie 來釋放內(nèi)存,從而導(dǎo)致 activity 狀態(tài)的丟失.

  因?yàn)楹笸藯V械? activitie 從不會被重排,如果你的應(yīng)用允許用戶從不只一個(gè) activity 啟動一個(gè)特殊的 activity ,一個(gè)新的 activity 的實(shí)例會被創(chuàng)建并壓入棧中 ( 而不是把這個(gè) activity 的當(dāng)前實(shí)例弄到前臺來 ) .所以,你的應(yīng)用中的一個(gè) activity 可能被多次實(shí)例化 ( 甚至是從不同的任務(wù) ) ,如圖 3 所示 . 同樣的,如果用戶使用后退按鈕向后導(dǎo)航, activity 的每個(gè)實(shí)例都會按照打開的順序重新顯現(xiàn) ( 每個(gè)都保持它們自己的狀態(tài) ) .然后,你如果不想某個(gè) activity 被實(shí)例化多次,你可以改變這種行為.后面會講到如何做.


Android task和back stack詳解一:概述

3 .一個(gè) activity 被實(shí)例化多次.


下面總結(jié)一下下 activity 和任務(wù)的默認(rèn)行為:

  • 當(dāng) ActivityA 啟動 ActivityB ActivityA 停止,但是系統(tǒng)保存它的狀態(tài) ( 比如滾動條的位置和表單中輸入的文本 ) .如果用戶在 Activity B 中按下了后退按鈕, ActivityA 以保 存的狀態(tài)恢復(fù).

  • 當(dāng)用戶按下 Home 按鈕離開了一個(gè)任務(wù),當(dāng)前的 activity 停止同時(shí)它的任務(wù)進(jìn)入后臺.系統(tǒng)保持任務(wù)中每個(gè) activity 的狀態(tài).如果用戶后來運(yùn)行了這個(gè)任務(wù)的應(yīng)用而恢復(fù)了這個(gè)任務(wù),任務(wù)回到前臺并使棧頂端的 activity 恢復(fù).

  • 如果用戶按下了后退按鈕,當(dāng)前的 activity 從棧中彈出并被銷毀.前一個(gè) activity 被恢復(fù).當(dāng)一個(gè) activity 被銷毀時(shí),系統(tǒng)不再保持 activity 的狀態(tài).

  • Activitie 可以被多次實(shí)例化,即使是從另外的任務(wù).







Android task和back stack詳解一:概述


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 四虎永久网址在线观看 | 国产精品国产三级国产普通话 | 国产日韩精品欧美一区色 | 久久91av| 亚洲精品久久片久久 | 91精品国产美女福到在线不卡 | 中文字幕在线观看一区二区三区 | 亚洲 欧美 日韩 在线 | 99久久99久久久99精品齐 | 国产高清一级毛片在线不卡 | 亚洲综合色网站 | 天天靠天天擦天天摸 | 毛片爱做的片 | 欧美久在线观看在线观看 | 国内精品久久久久久久久久久久 | 99久久精品国产一区二区 | 中文字幕精品一区二区精品 | 今天的恋爱未删减在线观看 | 国产精品乱码在线观看 | 国产一级影院 | 中国大乳久久 | 国产精品一区视频 | 亚洲另类伦春色综合妖色成人网 | 四虎高清在线精品免费观看 | 牛牛影视午夜免费福利 | 欧美久久超级碰碰碰二区三区 | 日韩在线色 | 亚洲精品专区一区二区三区 | 亚洲欧美一级久久精品 | 四虎在线视频免费观看 | 久久99国产亚洲高清 | 成人国内精品久久久久影 | 亚洲精品乱码蜜桃久久久 | 中文字幕欧美日韩va免费视频 | 国产精品香蕉在线观看不卡 | 精品动漫一区二区三区 | 日本不卡二区 | 久久免费香蕉视频 | 97成人精品视频在线播放 | 久久精品国产亚洲精品 | 亚洲色妞 |