最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

RxJava 2.x新特性總結(jié)整理

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

什么是RxJava

Rx是異步響應(yīng)式編程的意思,本質(zhì)是觀察者模式,以觀察者和訂閱者的異步響應(yīng)式編程。

本文主要介紹了關(guān)于RxJava 2.x新特性的相關(guān)資料,下面話不多說(shuō),來(lái)看看詳細(xì)的介紹吧。

背壓的分離

Flowable/Subscriber

Flowable.range(0,10)
.subscribe(new Subscriber<Integer>() {
 Subscription sub;
 //當(dāng)訂閱后,會(huì)首先調(diào)用這個(gè)方法,其實(shí)就相當(dāng)于onStart(),
 //傳入的Subscription s參數(shù)可以用于請(qǐng)求數(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ù)上面的代碼的結(jié)果輸出中可以看到,當(dāng)我們調(diào)用subscription.request(n)方法的時(shí)候,不等onSubscribe()中后面的代碼執(zhí)行,就會(huì)立刻執(zhí)行到onNext方法,因此,如果你在onNext方法中使用到需要初始化的類時(shí),應(yīng)當(dāng)盡量在subscription.request(n)這個(gè)方法調(diào)用之前做好初始化的工作;

另外一種創(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ā)送單個(gè)數(shù)據(jù), 并不適合發(fā)送大量數(shù)據(jù).

//判斷是否登陸
Maybe.just(isLogin())
 //可能涉及到IO操作,放在子線程
 .subscribeOn(Schedulers.newThread())
 //取回結(jié)果傳到主線程
 .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() {
  }
 });

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

Action
Rx1.0———–Rx2.0

Action1——–Action

Action1——–Consumer

Action2——–BiConsumer

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

參考

總結(jié)

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

相關(guān)文章

  • Android自定義View模仿QQ討論組頭像效果

    Android自定義View模仿QQ討論組頭像效果

    最近發(fā)現(xiàn)QQ討論組的頭像非常不錯(cuò),正好最近又有時(shí)間,所有就動(dòng)手實(shí)踐了下,所以下面這篇文章主要給大家介紹了Android自定義View模仿QQ討論組頭像效果的相關(guān)資料,文中給出了詳細(xì)的介紹的示例代碼,需要的朋友可以參考學(xué)習(xí),下面來(lái)一起看看吧。
    2017-04-04
  • Crashlytics Android 異常報(bào)告統(tǒng)計(jì)管理(詳解)

    Crashlytics Android 異常報(bào)告統(tǒng)計(jì)管理(詳解)

    下面小編就為大家?guī)?lái)一篇Crashlytics Android 異常報(bào)告統(tǒng)計(jì)管理(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • Android仿eleme點(diǎn)餐頁(yè)面二級(jí)聯(lián)動(dòng)列表

    Android仿eleme點(diǎn)餐頁(yè)面二級(jí)聯(lián)動(dòng)列表

    本站一直在點(diǎn)外賣(mài),于是心血來(lái)潮就像仿餓了么做個(gè)站,接下來(lái)通過(guò)本文給大家介紹android 二級(jí)聯(lián)動(dòng)列表,仿eleme點(diǎn)餐頁(yè)面的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • Android中傳遞圖片的2種方法

    Android中傳遞圖片的2種方法

    這篇文章主要介紹了Android中傳遞圖片的2種方法,本文分別給出種方法的操作代碼實(shí)例,需要的朋友可以參考下
    2015-04-04
  • Android如何快速適配暗黑模式詳解

    Android如何快速適配暗黑模式詳解

    微信在前段時(shí)間的更新中也實(shí)現(xiàn)了暗黑模式,而蘋(píng)果系統(tǒng)也早就支持暗黑模式,Android也一樣可以實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于Android如何快速適配暗黑模式的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • Android 中 android.view.WindowLeaked的解決辦法

    Android 中 android.view.WindowLeaked的解決辦法

    這篇文章主要介紹了Android 中 android.view.WindowLeaked的解決辦法的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Android四大組件之BroadcastReceiver詳解

    Android四大組件之BroadcastReceiver詳解

    今天小編就為大家分享一篇關(guān)于Android四大組件之BroadcastReceiver詳解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • Kotlin Extension Function擴(kuò)展函數(shù)詳細(xì)介紹

    Kotlin Extension Function擴(kuò)展函數(shù)詳細(xì)介紹

    Kotlin支持使用新功能擴(kuò)展類的能力,而無(wú)需通過(guò)類實(shí)現(xiàn)繼承概念或使用設(shè)計(jì)模式,如裝飾器(Decorator)。這是通過(guò)稱為擴(kuò)展功能(Extension Function)的特殊方式來(lái)完成的。因此,此功能可以有效地使代碼變得更清晰和易于閱讀,并且還可以減少代碼
    2023-02-02
  • JankMan-極致的卡頓分析系統(tǒng)

    JankMan-極致的卡頓分析系統(tǒng)

    這篇文章主要為大家介紹了JankMan-極致的卡頓分析系統(tǒng)使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • Android實(shí)現(xiàn)滾動(dòng)刻度尺效果

    Android實(shí)現(xiàn)滾動(dòng)刻度尺效果

    本篇文章主要介紹了Android實(shí)現(xiàn)滾動(dòng)刻度尺效果,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05

最新評(píng)論

普格县| 博罗县| 卢湾区| 汉寿县| 广昌县| 蛟河市| 天津市| 大新县| 颍上县| 保亭| 德化县| 海丰县| 乌审旗| 辽阳县| 勃利县| 巴南区| 蚌埠市| 治县。| 体育| 商丘市| 蒙山县| 金昌市| 永靖县| 辽宁省| 平乡县| 南皮县| 彰化县| 子洲县| 波密县| 英德市| 菏泽市| 二连浩特市| 措美县| 长沙市| 玉环县| 疏附县| 遂溪县| 逊克县| 夹江县| 郸城县| 五峰|