- Android Jetpack應(yīng)用指南
- 葉坤
- 449字
- 2020-08-06 15:42:28
第2章 LifeCycle
2.1 LifeCycle的誕生
解耦是軟件開發(fā)中永恒的話題。在Android應(yīng)用程序開發(fā)中,解耦很大程度上表現(xiàn)為系統(tǒng)組件[1]的生命周期與普通組件[2]之間的解耦。普通組件在使用過程中通常需要依賴于系統(tǒng)組件的生命周期。有時(shí)候,我們不得不在系統(tǒng)組件的生命周期回調(diào)方法中,主動(dòng)對(duì)普通組件進(jìn)行調(diào)用或控制。因?yàn)槠胀ńM件無法主動(dòng)獲知系統(tǒng)組件的生命周期事件。
舉個(gè)例子,我們經(jīng)常需要在頁(yè)面的onCreate()方法中對(duì)組件進(jìn)行初始化,在onPause()方法中停止組件,而在頁(yè)面的onDestroy()方法中對(duì)組件進(jìn)行資源回收工作。這樣的工作非常煩瑣,會(huì)讓頁(yè)面與組件之間的耦合度變高。但這些工作又不得不做,因?yàn)檫@可能會(huì)引發(fā)內(nèi)存泄漏。
我們希望我們對(duì)自定義組件的管理,不依賴于頁(yè)面生命周期的回調(diào)方法。同時(shí),在頁(yè)面生命周期發(fā)生變化時(shí),也能夠及時(shí)收到通知。這在組件化和架構(gòu)設(shè)計(jì)中顯得尤為重要,如圖2-1所示。

圖2-1
為此,Google提供了LifeCycle作為解決方案。LifeCycle可以幫助開發(fā)者創(chuàng)建可感知生命周期的組件。這樣,組件便能夠在其內(nèi)部管理自己的生命周期,從而降低模塊間的耦合度,并降低內(nèi)存泄漏發(fā)生的可能性。LifeCycle不只對(duì)Activity/Fragment有用,在Service和Application中也能大顯身手。
- 服裝制板師崗位實(shí)訓(xùn)(下冊(cè))
- 嵌入式Linux開發(fā)實(shí)用教程(“十二五”國(guó)家重點(diǎn)圖書出版規(guī)劃項(xiàng)目)
- Rhino7犀利建模
- 軟文營(yíng)銷(第2版·慕課版)
- 故事創(chuàng)作大師班(國(guó)際卷)
- 物業(yè)電工技能速成與實(shí)戰(zhàn)技巧
- 叉車作業(yè)實(shí)訓(xùn)指導(dǎo)(中等職業(yè)教育改革發(fā)展示范校建設(shè)規(guī)劃教材)
- 36堂創(chuàng)造課輕松玩轉(zhuǎn)掌控板
- 網(wǎng)絡(luò)設(shè)備配置與管理
- 保安員(中級(jí))
- 柱上開關(guān)設(shè)備運(yùn)維與檢修技術(shù)(配網(wǎng)專業(yè)實(shí)訓(xùn)技術(shù)叢書)
- 傳感器技術(shù)及應(yīng)用
- 吉他自學(xué)一月通
- 催乳師
- ThoughtWorks技術(shù)雷達(dá):有態(tài)度的前沿技術(shù)解析(ThoughtWorks洞見)