Android?Jetpack組件中LifeCycle作用詳細(xì)介紹
Jetpack
Jetpack,我覺得翻譯為“飛行器”更好聽,因為Google針對編程歷史亂象,整理出一套組件庫,幫助開發(fā)者創(chuàng)造更完美的應(yīng)用作品?,F(xiàn)在市面上,很多公司招聘面試要求漸漸把Jetpack看作必會技能,Google也在瘋狂的安利Jetpack組件,和Kotlin一樣屬于親兒子一樣了。
1、那么Jetpack是什么呢
如圖所示,Jetpack是一個由多個技術(shù)庫組成的套件,可幫助開發(fā)者遵循最佳做法,減少樣板代碼并編寫可在各種Android版本和設(shè)備中一致運行的代碼,讓開發(fā)者精力集中編寫重要的代碼。
2、為何使用Jetpack
- 遵循最佳做法:Android Jetpack 組件采用最新的設(shè)計方法構(gòu)建,具有向后兼容性,可以減少崩潰和內(nèi)存泄露。
- 消除樣板代碼:Android Jetpack 可以管理各種繁瑣的Activity(如:后臺任務(wù)、導(dǎo)航和生命周期管理),以便你可以專注于打造出色的應(yīng)用。
- 減少不一致:這些庫可在各種Android 版本和設(shè)備中以一致的方式運作,助你降低復(fù)雜性!
3、Jetpack與AndroidX
- AndroidX命名空間中包含Android Jetpack庫
- AndroidX代替Android Support Library
- AAC(Android Architecture Component) 中的組件并入AndroidX
- 其他一些需要頻繁更新和迭代的特性也并入了AndroidX
LifeCycle
LifeCycle顧名思義是用來幫助開發(fā)者建立可感知生命周期的jetpack組件之一。LifeCycle在其內(nèi)部管理自己的生命周期,從而解藕頁面和組件,降低內(nèi)存泄露發(fā)生的可能性,Activity、Fragment、Service、Application均有LifeCycle支持。
1、LifeCycle的作用
如圖所示,LifeCycle用來監(jiān)聽Activity與Fragment的生命周期變化。
2、LifeCycle應(yīng)用
例如,一般我們在Activity中使用計時器時會在生命周期onPause和onReSume對其操作。因為計時器是長周期的變量,如果Activity關(guān)閉了,但沒有關(guān)閉計時器,就會繼續(xù)持用activity的引用造成內(nèi)存泄露。
1、設(shè)計組件
//自定義了控件,繼承了Chronometer計時器,實現(xiàn)了LifecycleObserver接口 @SuppressLint("ViewConstructor") class MyChronometer : Chronometer, LifecycleObserver { constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet) var elapsedTime: Long = 0 //計時開始 ,方法添加了注解 @OnLifecycleEvent(Lifecycle.Event.ON_RESUME) open fun startMeter() { base = SystemClock.elapsedRealtime() - elapsedTime start() } //計時暫停 ,方法添加了注解 @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE) open fun stopMeter() { elapsedTime = SystemClock.elapsedRealtime() - base stop() } }
2、使用組件
class Step2Activity : AppCompatActivity() { private var chronometer: MyChronometer? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) //組件 chronometer = findViewById(R.id.chronometer) //添加觀察者 lifecycle.addObserver(chronometer!!) } }
3、總結(jié)LifeCycle的使用
1、繼承LifeCycle Observer方法
class lifecycleTest : LifecycleObserver { @OnLifecycleEvent(Lifecycle.Event.ON_CREATE) fun onCreate() { } @OnLifecycleEvent(Lifecycle.Event.ON_START) fun onStart() { } @OnLifecycleEvent(Lifecycle.Event.ON_RESUME) fun onResume() { } @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE) fun onPause() { } @OnLifecycleEvent(Lifecycle.Event.ON_STOP) fun onStop() { } @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY) fun onDestroy() { } }
2、添加觀察者
lifecycle.addObserver(lifecycleTest)
到此這篇關(guān)于Android Jetpack組件重LifeCycle作用詳細(xì)介紹的文章就介紹到這了,更多相關(guān)Android Jetpack LifeCycle內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
ScrollView與ListView合用(正確計算Listview的高度)的問題解決
最近做項目中用到ScrollView和ListView一起使用的問題,顯示的時候ListView不能完全正確的顯示,查了好多資料終于成功解決:2013-05-05總結(jié)Android中MD風(fēng)格相關(guān)控件
自Android5.0發(fā)布以來,谷歌推出全新的Material Desigen設(shè)計風(fēng)格,時過一年多了,在國內(nèi)也看到很多應(yīng)用在慢慢適應(yīng)MD設(shè)計風(fēng)格。今天小編給大家總結(jié)下Android中MD風(fēng)格相關(guān)控件的知識,有需要的可以參考學(xué)習(xí)。2016-08-08Android layoutAnimation詳解及應(yīng)用
這篇文章主要介紹了Android layoutAnimation詳解及應(yīng)用的相關(guān)資料,需要的朋友可以參考下2017-05-05Android編程之listView中checkbox用法實例分析
這篇文章主要介紹了Android編程之listView中checkbox用法,結(jié)合實例形式分析了Android中checkbox的頁面布局及功能實現(xiàn)相關(guān)技巧,需要的朋友可以參考下2016-01-01Android HttpURLConnection.getResponseCode()錯誤解決方法
在使用HttpURLConnection.getResponseCode()的時候直接報錯是IOException錯誤,一直想不明白,同一個程序我調(diào)用了兩次,結(jié)果有一個鏈接一直O(jiān)K,另一個卻一直報這個錯誤2013-06-06