首页 > Java > java教程 > 正文

RxJava 2.x新特性总结整理的图文介绍

黄舟
发布: 2017-03-31 10:55:57
原创
1596人浏览过

这篇文章主要介绍了rxjava 2.x新特性的相关资料,文中通过图文及示例代码介绍的非常详细,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。

什么是RxJava

Rx是异步响应式编程的意思,本质是观察者模式,以观察者和订阅者的异步响应式编程。

本文主要介绍了关于RxJava 2.x新特性的相关资料,下面话不多说,来看看详细的介绍吧。

背压的分离

立即学习Java免费学习笔记(深入)”;

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);
登录后复制

其他观察者模式

以上三种类似, 比较适合发送单个数据, 并不适合发送大量数据.

//判断是否登陆
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新特性总结整理的图文介绍的详细内容,更多请关注php中文网其它相关文章!

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号