?自從接觸了《android開發(fā)藝術(shù)探索》這本書后,對(duì)android有了更深一步的認(rèn)識(shí)戒幔,這本書確實(shí)適合android進(jìn)階研究吠谢,對(duì)android的一些問題進(jìn)行了深入的分析與介紹。
?接下來就我學(xué)習(xí)Activity的生命周期的分析進(jìn)行總結(jié)分享诗茎。
問題1:onStart和onResume工坊、onPause以及onStop的實(shí)質(zhì)區(qū)別?
? onStart和onStop是從Activity是否可見這個(gè)角度來回調(diào)的敢订,而onResume和onPause是從Activity是否位于前臺(tái)這個(gè)角度來回調(diào)的王污。
? onstart表示Activity可見,但是還不能與用戶進(jìn)行交互楚午,可以理解為Activity已經(jīng)顯示出來了昭齐,但是我們還看不見。
? onStop表示Activity即將停止矾柜,此時(shí)可以做一些稍微重量級(jí)的回收工作阱驾,但不能太耗時(shí),此時(shí)Activity已經(jīng)變得不可見怪蔑。
? onResume表示此時(shí)Activity從后臺(tái)切換到前臺(tái)里覆,可以與用戶進(jìn)行交互,于onstart相比饮睬,onStart和onResume都表示Activity可見租谈,但onstart的時(shí)候Activity還在后臺(tái),而onResume時(shí)Activity從后臺(tái)切換到前臺(tái)。
? onPause表示Activity正在停止割去,此時(shí)Activity切換到后臺(tái)窟却,不能與用戶進(jìn)行交互。不能再onPause中做重量級(jí)的操作呻逆。
? 從Activity的整個(gè)生命周期來看夸赫,onCreate和ondestory是配對(duì)的,分別標(biāo)識(shí)著Activity的創(chuàng)建與銷毀咖城,并且只能有一次被調(diào)用茬腿。
? 從Activity的可見來說,onstart和onStop是配對(duì)的宜雀,隨著用戶的操作或者設(shè)備屏幕的點(diǎn)亮與熄滅切平,這兩個(gè)方法可能被多次調(diào)用。
? 從Activit是否在前臺(tái)來說辐董,onResume和onPause是配對(duì)的悴品,隨著用戶的操作或者設(shè)備屏幕的點(diǎn)亮與熄滅,這兩個(gè)方法可能多次被調(diào)用简烘。
問題2:有兩個(gè)Activity苔严,分別為Activity A和Activity B,用A啟動(dòng)B ,B 的onResume和A的onPause哪個(gè)先執(zhí)行?
? 追蹤android的源碼可知孤澎,在新的activity啟動(dòng)之前届氢,棧頂?shù)腁ctivity需要先onPause后,新的Activity才能執(zhí)行覆旭。因此在啟動(dòng)ActivityB之前先執(zhí)行Activity A的onPause退子,然后啟動(dòng)Activity B 執(zhí)行Activity B的onResume。