原文引用自:https://medium.com/@factoryhr/understanding-java-rxjava-for-beginners-5eacb8de12ca
这篇文章 我会通过一些简单基本的例子解释一下rxjava,这篇文章适合初学的一头雾水的小伙伴 如果您是大神也可以再看一下 加深理解。
什么是RxJava
RxJava是ReactiveX的Java 虚拟机的实现,是一个使用可观察序列组成异步和基于事件的程序的库 或者再简单粗暴理解一下就是 处理异步任务 或者处理事件流的库。
rxjava的三大件:
1,Observables 被观察着
2,Subscribers 消费者
3,Operator 操作符
RxJava的构建基础是Observables和Subscribers。 Observable用于发出item,Subscriber用于消费这些item。这与标准的Observable模式非常相似,但RxJava做得更好,有更多的选择。例如,Observables通常不会在有人订阅它们之前开始发出项目。这是一个很棒的功能,因为这样你就可以节省不惜要的性能开销。
RxJava 订阅者订阅Observable,然后Observable为任意数量的项调用Subscriber.onNext(),如果出现问题则是Subsciber.onError(),如果一切正常,则为Subscriber.onCompleted()。流程就是这么简单 请看下边实例代码理解这个过程
创建一个Observable
创建一个观察者
下边是Observable注册观察者
这样就妥了 这俩个东西组成了Rxjava使用的一个基本流程
结果是:
I/System.out: Blue Factory
I/System.out: I’m done
这个例子这么简单 我们还能加点东西让它变得更加简单 例如create那个方法 请看下边
这样一句话就搞定了。瘦身成功 执行下结果和原来一样 我们还可以操作一个list集合 请看下边
创建一个list先
再创建一个Observable
然后再订阅
执行结果就是遍历了这个集合。
I/System.out: Blue
I/System.out: Factory
I/System.out: Blog
I/System.out: Post
Operator 很重要的一个操作符 我们再来学习一下 看下边例子
我们在原来的just上又 map了一下 map是操作符 意思就是把原来的数据又转换了一下 最后发送到Subscriber
我想再map一下可以么 我们再玩一下这个map
map了2次,一个数据经过几次map 可以根据我们自己的业务需求 变换原始数据(可以是任何对象)这就是对数据流的处理 处理完毕后结果发送到Subscriber。
总结:
我们可以对 字符串,整数,API调用,点击等。我们使用RxJava进行API调用和android 控件事件的处理。 RxJava提供了简单的API处理,因为您不需要担心线程,并且您可以链接少量请求并在单个订阅服务器上获得结果。使用RxJava,您可以处理一些控件行为,例如,在一个按钮按下五次后将执行的操作,或者您可以创建Observable,它将每4秒从EditText输入发出一个String,以及许多其他奇特的东西。我希望本文为您提供RxJava的基础知识,并希望您将来继续深入探索RxJava。