官术网_书友最值得收藏!

第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中也能大顯身手。

主站蜘蛛池模板: 望奎县| 石嘴山市| 汨罗市| 梁山县| 本溪| 隆安县| 侯马市| 当阳市| 莫力| 舒兰市| 九寨沟县| 响水县| 深州市| 霍山县| 永丰县| 凭祥市| 贵南县| 乌审旗| 马公市| 沧源| 介休市| 沈阳市| 女性| 务川| 武山县| 徐水县| 瑞丽市| 望江县| 镇赉县| 云南省| 罗甸县| 左权县| 泸州市| 九江市| 东宁县| 山阳县| 建德市| 夏河县| 大埔县| 偏关县| 诸城市|