RxJava 詳解

RxJava 詳解

目錄

[TOC]來生成目錄:

RxJava:一個在Java VM 虛擬機上使用可觀測的序列來組成異步的、基於事件的程序的庫。

  • Rxjava 模式
  • RxJava 事件回調方法
  • RxJava 的API的實現
  • RxJava 的示例
  • *簡化*RxJava代碼

Rxjava 的設計模式

觀察者模式:觀察者定義了一種一對多的依賴關係,讓多個觀察者對象同時監聽某一主題對象。(發佈-訂閱模式) —— [ 百度百科 ]

註冊(Register)或者稱爲訂閱(Subscribe)的方式,觀察者訂閱了被觀察者的狀態,當被觀察者的狀態發生改變的時候,就會通知觀察者 ,被觀察者的狀態已經發生改變。

具體請參考RxJava源碼Github.

如圖

觀察者模式

RxJava 的觀察者模式

四個基本概念
Observable
可觀察者、既被觀察者
Observer
觀察者
Subscribe
訂閱、時間

Observable和Observer通過subscribe()方法實現訂閱關係

> subscribe()

RxJava的事件回調方法

  1. onNext() 相當於onclick()/onEvent()
  2. onCompleted() 事件隊列完結;
  3. onError() 事件隊列異常

在一個正確運行的事件序列中,onCompleted和onError有且只有一個,並且是事件序列中的最後一個。

RxJava的API實現

  1. 創建一個Observer,也就是觀察者;
  2. 創建一個Observable,也就是被觀察者;
  3. 利用subscriber()方法綁定關係

觀察者observer示例

Subscriber()訂閱和觀察者是一樣的。

Observer<String> observer = new Observer<String>(){

         public void onNext(String s){
         Log.d(tag,"item:"+s);
         }
         public void onCompleted(){
         Log.d(tag,"onCompleted");
         }
         public void onError(){
         Log.d(tag,"onError");
         }
         }

被觀察者:Obervable示例:

Obervable<String> observer = Obervable.create(new Obervable.OnSubscriber String>(){

public void call(Subscriber <? super String> subscriber){
              subscriber.onNext("Hello");
               subscriber.onNext("Hi");
                subscriber.onCompleted();
}
 });
 //簡寫方法
 Obervable observer =Obervable.just("Hello","Hi","你好")

綁定關係

兩種綁定方式

observable.subscribe(observer);
//or
observable.subscribe(subscriber);

函數響應式編程(FRP)

函數響應式編程(FRP):是在觀察者模式的基礎上,增加對被觀察者發送的數據流進行操縱和變換的功能。

響應是編程的信息流

observalbe ->Operator1 ->Operator2 ->Subscriber
也就是說,observable是事件的生產者,subscriber是事件的消費者

注意引入庫:compile ‘io.reactivex:rxjava:x.y.z’

代碼的簡化我們下期在講解


發佈了56 篇原創文章 · 獲贊 16 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章