1. 程式人生 > >Android官方架構組件:Lifecycle詳解&迪士尼彩樂園平臺搭建原理分析

Android官方架構組件:Lifecycle詳解&迪士尼彩樂園平臺搭建原理分析

基類 客服 androi lifecycle 利用 思想 pub 遇到 原理

在過去的谷歌IO大會上,Google官方向我們推出了 Android Architecture Components,其中談到Android組件處理生命周期的問題,向我們介紹了 Handling Lifecycles。

同時,如何利用 android.arch.lifecycle 包提供的類來控制數據、監聽器等的 lifecycle。同時,LiveData 與 ViewModel 的 lifecycle 也依賴於 Lifecycle 框架。

經過公司內部的技術交流小組的探討後,不少小夥伴覺得這個框架本身尚未成熟(當時的 Android Architecture Components組件還處於Alpha版本),再加上本身並沒有足夠的說服力讓我們拋棄RxJava+RxAndroid全家桶轉身投奔LiveData ,而Room 這個數據庫框架本身也有很多同樣優秀的三方庫可以替代,因此我漸漸把這個框架的學習計劃擱置了。

Android官方架構組件:Lifecycle詳解&原理分析
迪士尼彩樂園平臺搭建,需要請搜索【大神源碼論壇】dsluntan.com 客服企娥3393756370 V信17061863513,

不久前, Android Architecture Components 正式Release, Lifecycle也正式植入進了SupportActivity(AppCompatActivity的基類)和Fragment中,我覺得還是有必要去嘗試學習google的這個框架,不管有沒有用到,我相信其本身的設計思想也會對我有很大的幫助。

一、Lifecycle簡介&基礎使用
為什麽要引進Lifecycle?

我們在處理Activity或者Fragment組件的生命周期相關時,不可避免會遇到這樣的問題:

我們在Activity的onCreate()中初始化某些成員(比如MVP架構中的Presenter,或者AudioManager、MediaPlayer等),然後在onStop中對這些成員進行對應處理,在onDestroy中釋放這些資源,這樣導致我們的代碼也許會像這樣:

class MyPresenter{
public MyPresenter() {
}

void create() {
    //do something
}

void destroy() {
    //do something
}

}

class MyActivity extends AppCompatActivity {

private MyPresenter presenter;

public void onCreate(...) {
    presenter= new MyPresenter ();
    presenter.create();
}

public void onDestroy() {
    super.onDestroy();
    presenter.destory();
}

}
代碼沒有問題,關鍵問題是,實際生產環境中 ,這樣的代碼會非常復雜,你最終會有太多的類似調用並且會導致 onCreate() 和 onDestroy() 方法變的非常臃腫。

Android官方架構組件:Lifecycle詳解&迪士尼彩樂園平臺搭建原理分析