RxJava 2.x新特性总结整理
2017-03-30 10:41
323 查看
什么是RxJava
Rx是异步响应式编程的意思,本质是观察者模式,以观察者和订阅者的异步响应式编程。
本文主要介绍了关于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新特性的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
您可能感兴趣的文章:
相关文章推荐
- java8 新特性总结(-)转载整理
- [置顶] android RxJava2使用 操作符代码总结整理
- 试用了一下Sqlite,总结和整理一下参考资料
- Java1.5语言新特性简单总结
- Sql Server 索引总结(整理)
- 客户端平台工作整理及总结
- web.xml规则经过整理总结如下
- 这段时间总结的EBS方面的知识,没有整理
- [VS2005的新特性总结之一]VS2005 IDE对C#编程的改进
- 总结C#中窗体间传递数据的几种方法 (由别人的方法整理)
- 游戏特性构建-YY篇(1)无冬之夜特性设计整理
- 单元测试(从网上搜集的资料,自己总结整理过的)
- JSF1.2技术的新特性总结
- DB2学习(特性总结)
- 六级词汇总结( 整理自己的大学时候的资料发现的好东东!!~~)
- CMM公共特性总结对照表
- Java1.5语言新特性简单总结
- 创新性应用-在工作过程中总结了SQL 2005的主要新特性-崔欣
- Java1.5语言新特性简单总结
- Alan Kay面向对象之父总结的OOP特性