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

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

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

系列文章目錄

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


 

 


前言

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


一、Lifecycle是什么?

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

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

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

1. 應用場景

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

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()// 視頻開始緩沖
		耗時任務()
		// 其他業(yè)務邏輯...
	}
	
	override fun onStop(){
		mNet.cancel()// 網(wǎng)絡(luò)斷開
		mPlayer.releaseCache()// 視頻釋放緩存
		// 其他業(yè)務邏輯...
	}
}

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

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

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

分享到:
標簽:Android
用戶無頭像

網(wǎng)友整理

注冊時間:

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

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

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

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

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

答題星2018-06-03

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

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

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

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

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

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

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定