Android框架|異步-RxJava2.x(一)

文章目錄

1.Rxjava是什麼
2.Rxjava的優點
3.Rxjava的實現
4.觀察者模式
5.RxJava 的觀察者模式


1.Rxjava是什麼?

  • 官方文檔
    RxJava 的本質可以壓縮爲異步這一個詞,它是一個可以實現異步操作的庫。
    它是一種響應編程模式,其中一個關鍵的概念是事件。事件可以被等待,可以觸發過程,也可以觸發其它事件。

2.Rxjava的優點

  • 它優於其他實現異步的方法便是它的簡潔性,並且能夠隨着程序邏輯變得越來越複雜的時候,它依然能夠保持簡潔。

3.Rxjava的實現

  • RxJava的實現,是一種從上到下的鏈式調用,沒有任何嵌套,這在邏輯的簡潔性上是具有優勢的。當需求變得複雜時,這種優勢將更加明顯。RxJava的異步實現,是通過觀察者模式來實現的。

4.觀察者模式

  • 注意,觀察者模式並不意味着每時每刻都在“觀察”中,而是採用註冊(Register)或者稱爲訂閱(Subscribe)的方式,告訴被觀察者:我需要你的某某狀態,你要在它變化的時候通知我。
    一個比較典型的例子是點擊監聽器 OnClickListener 。對設置 OnClickListener 來說, View 是被觀察者,OnClickListener 是觀察者,二者通過 setOnClickListener()方法達成訂閱關係。訂閱之後用戶點擊按鈕的瞬間,Android Framework 就會將點擊事件發送給已經註冊的OnClickListener 。
    採取這樣被動的觀察方式,既省去了反覆檢索狀態的資源消耗,也能夠得到最高的反饋速度。

5.RxJava 的觀察者模式

  • RxJava 有四個基本概念:Observable (被觀察者)、 Observer (觀察者)、
    subscribe (訂閱)、Event事件。Observable 和 Observer 通過 subscribe() 方法實現訂閱關係,從而 Observable 可以在需要的時候發出事件來通知 Observer。

    RxJava 的事件回調方法除了普通事件 onNext() (相當於 onClick() /
    onEvent())之外,還定義了兩個特殊的事件:onCompleted()onError()

    onCompleted(): 事件隊列完結。RxJava 不僅把每個事件單獨處理,還會把它們看做一個隊列。RxJava規定,當不會再有新的 onNext() 發出時,需要觸發 onCompleted() 方法作爲標誌。
    onError():事件隊列異常。在事件處理過程中出異常時,onError() 會被觸發,同時隊列自動終止,不允許再有事件發出。
    在一個正確運行的事件序列中, onCompleted() 和 onError()有且只有一個,並且是事件序列中的最後一個。需要注意的是,onCompleted() 和 onError()二者也是互斥的,即在隊列中調用了其中一個,就不應該再調用另一個。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章