亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

RxJava 2.x新特性總結整理

 更新時間:2017年03月30日 10:41:55   作者:kkooff144  
這篇文章主要介紹了RxJava 2.x新特性的相關資料,文中通過圖文及示例代碼介紹的非常詳細,對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。

什么是RxJava

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

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

背壓的分離

Flowable/Subscriber

Flowable.range(0,10)
.subscribe(new Subscriber<Integer>() {
 Subscription sub;
 //當訂閱后,會首先調用這個方法,其實就相當于onStart(),
 //傳入的Subscription s參數(shù)可以用于請求數(shù)據(jù)或者取消訂閱
 @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

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

另外一種創(chuàng)建方法

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

以上三種類似, 比較適合發(fā)送單個數(shù)據(jù), 并不適合發(fā)送大量數(shù)據(jù).

//判斷是否登陸
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() {
  }
 });

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

Action
Rx1.0———–Rx2.0

Action1——–Action

Action1——–Consumer

Action2——–BiConsumer

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

參考

總結

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

相關文章

  • Android開發(fā)實現(xiàn)TextView超鏈接5種方式源碼實例

    Android開發(fā)實現(xiàn)TextView超鏈接5種方式源碼實例

    這篇文章主要介紹了Android開發(fā)實現(xiàn)TextView超鏈接5種方式源碼實例,需要的朋友可以參考下
    2020-03-03
  • Android Dialog 設置字體大小的具體方法

    Android Dialog 設置字體大小的具體方法

    這篇文章介紹了Android Dialog 設置字體大小的具體方法,希望能幫助到有同樣需求的朋友,可能我的方法不是最好的,也希望有朋友指點
    2013-09-09
  • Android自定義柱狀圖表的方法實例

    Android自定義柱狀圖表的方法實例

    柱狀圖是我們在日常開發(fā)中經(jīng)常會用到的一種圖表,下面這篇文章主要給大家介紹了關于Android如何自定義柱狀圖表的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧
    2018-05-05
  • Android編程獲取圖片和視頻縮略圖的方法

    Android編程獲取圖片和視頻縮略圖的方法

    這篇文章主要介紹了Android編程獲取圖片和視頻縮略圖的方法,結合實例形式分析了Android圖形圖像處理所涉及的常用函數(shù)與使用技巧,需要的朋友可以參考下
    2016-04-04
  • 藍牙原理Android代碼實現(xiàn)

    藍牙原理Android代碼實現(xiàn)

    這篇文章主要為大家詳細介紹了藍牙原理Android代碼實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Android使用Spinner實現(xiàn)城市級聯(lián)下拉框

    Android使用Spinner實現(xiàn)城市級聯(lián)下拉框

    這篇文章主要為大家詳細介紹了Android使用Spinner實現(xiàn)城市級聯(lián)下拉框,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Android優(yōu)化方案之Fragment的懶加載實現(xiàn)代碼

    Android優(yōu)化方案之Fragment的懶加載實現(xiàn)代碼

    本篇文章主要介紹了Android優(yōu)化方案之Fragment的懶加載實現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • android圖像繪制(三)畫布刷屏問題記錄

    android圖像繪制(三)畫布刷屏問題記錄

    在canvas中繪制動態(tài)圖的時候,如果使用了一個固定的背景圖片,只有一個小小的精靈在移動!這樣的情況下卻不得不在沒幀中重新繪制背景圖片,使得效率降低,本文章只是記錄一下,并不是解決方法感興趣的朋友可以了解下
    2013-01-01
  • 靈活使用Android中ActionBar和ViewPager切換頁面

    靈活使用Android中ActionBar和ViewPager切換頁面

    這篇文章主要介紹了如何靈活使用Android中ActionBar和ViewPager切換頁面,感興趣的小伙伴們可以參考一下
    2015-12-12
  • RecycleView實現(xiàn)各種尺寸圖片展示

    RecycleView實現(xiàn)各種尺寸圖片展示

    這篇文章主要為大家詳細介紹了RecycleView實現(xiàn)各種尺寸圖片展示,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05

最新評論