Android Lifecycle组件使用
Android Lifecycle組件使用
Android中很多組件都具備生命周期功能,系統(tǒng)框架會(huì)在適合時(shí)機(jī)調(diào)用相應(yīng)的生命周期方法,作為開發(fā)者在開發(fā)業(yè)務(wù)時(shí)可能需要爭對組件的生命周期需要作出相應(yīng)的處理;比如onDestroy需要釋放資源,防止內(nèi)存泄漏甚至引發(fā)應(yīng)用崩潰;
Android的生命周期Lifecycle就是用來解決該問題,同時(shí)可以將業(yè)務(wù)處理代碼從Fragment或Activity相關(guān)的生命周期方法中分離,這樣寫出的代碼更有條理性便于代碼后期維護(hù)
1. 集成
添加Lifecycle輕量級庫
implementation "android.arch.lifecycle:runtime:1.1.1" implementation 'com.android.support:appcompat-v7:28.0.0'2. 使用
public class HomeActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);getLifecycle().addObserver(new HomeObserver());} }public class HomeObserver implements LifecycleObserver {@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)void onCreate() {Log.d("dbs", "===onCreate===");}@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)void onResume() {Log.d("dbs", "===onResume===");}@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)void onDestroy() {Log.d("dbs", "===onDestory===");} }啟動(dòng)APP,查看控制臺(tái)輸出日志
2020-03-21 21:17:23.850 D/dbs: ===onCreate=== 2020-03-21 21:17:23.859 D/dbs: ===onResume===點(diǎn)擊返回
2020-03-21 21:17:27.860 D/dbs: ===onDestory===大家可以看到使用非常簡單,如果需要觀察HomeActivity生命周期,只需要將觀察者(HomeObserver)添加到Lifecycle中即可;一旦HomeActivity生命周期發(fā)生變化,HomeObserver就能被感知到,自動(dòng)觸發(fā)相關(guān)方法
3. 疑問
HomeObserver是如何感知到HomeActivity生命周期呢?
下篇我將從源碼角度進(jìn)行剖析HomeActivity的生命周期事件是如何轉(zhuǎn)發(fā)到HomeObserver中
Android Lifecycle源碼解析(一)
總結(jié)
以上是生活随笔為你收集整理的Android Lifecycle组件使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android-JSNative交互的几
- 下一篇: Android Lifecycle源码解