亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

RxJava 2.x新特性總結整理

發布時間:2020-10-25 07:53:45 來源:腳本之家 閱讀:180 作者:kkooff144 欄目:移動開發

什么是RxJava

Rx是異步響應式編程的意思,本質是觀察者模式,以觀察者和訂閱者的異步響應式編程。

本文主要介紹了關于RxJava 2.x新特性的相關資料,下面話不多說,來看看詳細的介紹吧。

背壓的分離

RxJava 2.x新特性總結整理

Flowable/Subscriber

Flowable.range(0,10)
.subscribe(new Subscriber<Integer>() {
 Subscription sub;
 //當訂閱后,會首先調用這個方法,其實就相當于onStart(),
 //傳入的Subscription s參數可以用于請求數據或者取消訂閱
 @Override
 public void onSubscribe(Subscription s) {
 Log.w("TAG","onsubscribe start");
 sub=s;
 sub.request(1);
 Log.w("TAG","onsubscribe end");
 }
 @Override
 public void onNext(Integer o) {
 Log.w("TAG","onNext--->"+o);
 sub.request(1);
 }
 @Override
 public void onError(Throwable t) {
 t.printStackTrace();
 }
 @Override
 public void onComplete() {
 Log.w("TAG","onComplete");
 }
});

輸出:

onsubscribe start
onNext--->0
onNext--->1
onNext--->2
...
onNext--->10
onComplete
onsubscribe end

根據上面的代碼的結果輸出中可以看到,當我們調用subscription.request(n)方法的時候,不等onSubscribe()中后面的代碼執行,就會立刻執行到onNext方法,因此,如果你在onNext方法中使用到需要初始化的類時,應當盡量在subscription.request(n)這個方法調用之前做好初始化的工作;

另外一種創建方法

Flowable.create(new FlowableOnSubscribe<Integer>() {
  @Override
  public void subscribe(FlowableEmitter<Integer> e) throws Exception {
  e.onNext(1);
  e.onNext(2);
  e.onNext(3);
  e.onNext(4);
  e.onComplete();
  }
 }
 //需要指定背壓策略
 , BackpressureStrategy.BUFFER);

其他觀察者模式

  • Single/SingleObserver
  • Completable/CompletableObserver
  • Maybe/MaybeObserver

以上三種類似, 比較適合發送單個數據, 并不適合發送大量數據.

//判斷是否登陸
Maybe.just(isLogin())
 //可能涉及到IO操作,放在子線程
 .subscribeOn(Schedulers.newThread())
 //取回結果傳到主線程
 .observeOn(AndroidSchedulers.mainThread())
 .subscribe(new MaybeObserver<Boolean>() {
  @Override
  public void onSubscribe(Disposable d) {
  }
  @Override
  public void onSuccess(Boolean value) {
  if(value){
   ...
  }else{
   ...
  }
  }
  @Override
  public void onError(Throwable e) {
  }
  @Override
  public void onComplete() {
  }
 });

實際上,這種觀察者模式并不用于發送大量數據,而是發送單個數據,也就是說,當你只想要某個事件的結果(true or false)的時候,你可以用這種觀察者模式

Action
Rx1.0———–Rx2.0

Action1——–Action

Action1——–Consumer

Action2——–BiConsumer

后面的Action都去掉了,只保留了ActionN

參考

RxJava 2.x新特性總結整理

RxJava 2.x新特性總結整理

RxJava 2.x新特性總結整理

RxJava 2.x新特性總結整理

RxJava 2.x新特性總結整理

RxJava 2.x新特性總結整理

RxJava 2.x新特性總結整理

RxJava 2.x新特性總結整理

總結

以上就是關于RxJava 2.x新特性的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

林甸县| 娄烦县| 筠连县| 泾阳县| 衡南县| 嫩江县| 鄂尔多斯市| 衡水市| 聂荣县| 桐庐县| 乌鲁木齐县| 泸州市| 喀喇| 鄱阳县| 望都县| 景洪市| 鲁山县| 海伦市| 常德市| 财经| 饶河县| 内乡县| 南宁市| 洛川县| 伊宁市| 曲靖市| 砚山县| 赤水市| 平邑县| 金溪县| 罗源县| 辽阳市| 澳门| 陇南市| 仁怀市| 中牟县| 嘉荫县| 大理市| 泗阳县| 凤冈县| 巴马|