日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

系列文章目錄

第一章 Android: 徹底搞懂Lifecycle——使用篇
第二章 Android: 徹底搞懂Lifcycle——原理篇


 

 


前言

你真的了解lifecycle嗎?本文的目標(biāo)就是要“打破砂鍋問到底”,帶你真真切切了解它。
lifecycle生命周期


一、Lifecycle是什么?

lifecycle 是屬于Android Jetpack(官方開發(fā)工具包)—— Architecture(架構(gòu)組件)中的一員。

【官方介紹】構(gòu)建生命周期感知型組件,這些組件可以根據(jù) Activity 或 Fragment 的當(dāng)前生命周期狀態(tài)調(diào)整行為。

【白話】lifecycle可以和Activity或Fragment生命周期綁定,方便我們做一些跟生命周期相關(guān)的業(yè)務(wù)邏輯。

1. 應(yīng)用場景

  • 控制視頻緩沖的開始與停止:啟動App的時候可以更快的開始緩沖視頻,App銷毀時停止緩沖。
  • 開始和停止網(wǎng)絡(luò)連接:應(yīng)用位于前臺時可能需要實(shí)時傳輸數(shù)據(jù),并在應(yīng)用進(jìn)入后臺時自動暫停。
  • 控制頁面動畫的啟動與停止:動畫在頁面可見時進(jìn)行播放,不可見時停止。

2. 示例

為了方便李(理)姐(解),下面直接用偽代碼寫了。

class MainActivity: AppCompatActivity{
	/**網(wǎng)絡(luò)監(jiān)聽器*/
	val .NET = NetListener()
	/**視頻播放器*/
	val mPlayer = VideoPlayer()
	
	override fun onStart(){
		mNet.connect()// 網(wǎng)絡(luò)開始連接
		mPlayer.startCache()// 視頻開始緩沖
		耗時任務(wù)()
		// 其他業(yè)務(wù)邏輯...
	}
	
	override fun onStop(){
		mNet.cancel()// 網(wǎng)絡(luò)斷開
		mPlayer.releaseCache()// 視頻釋放緩存
		// 其他業(yè)務(wù)邏輯...
	}
}

這是很常見的寫法,我們在生命周期的回調(diào)方法中做了很多事情,一旦代碼多了后,是很難維護(hù)的。

另外,在頁面停止時,其他生命周期(如onStart)有耗時任務(wù),這時有可能onStop先結(jié)束,而耗時的組件,還存在。

隨著業(yè)務(wù)復(fù)雜,也容易出bug, 讓本不富裕的家庭,雪上+霜

分享到:
標(biāo)簽:Android
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定