RxJava 1、RxJava是什么? 一个可观测的序列来组成异步的,基于事件的程序的库。 简单来说,它就是一个实现异步操作的库。 具体可去github查看源码:https://github.com/ReactiveX/Rxjava 2、RxJava的好处? RxJava其实就是提供一套异步编程的API,这套API是基于观察者模式的,而且是链式调用的。 所以使用RxJava编写的代码的逻辑会非常简洁。 3、适用场景 数据库的读写、大图片的载入、文件压缩/解压等各种需要放在后台工作的耗时操作,都可以用RxJava来实现 4、三个基本的元素 被观察者Observable 观察者Observer onSubscribe:订阅观察者的时候被调用 onNext:发动该事件时观察者会回调onNext()方法 onError:发动该事件时观察者会回调onError()方法,当发送该事件之后,其它事件将不会继续发送 onComplete:发动该事件时观察者会回调onComplete()方法,当发送该事件之后,其它事件将不会继续发送 订阅subscribe 5、五种被观察者 Observable:决定什么时候触发事件以及触发怎样的事件 Flowable:可以看成是Observable的实现,只是它支持背压 // 被观察者(被压)的创建 Flowable<String> stringFlowable = Flowable.create(new FlowableOnSubscribe<String>() { @SuppressLint("CheckResult") @Override public void subscribe(@NonNull FlowableEmitter<String> emitter) throws Throwable { } }, BackpressureStrategy.BUFFER); Single:简化版的Observable,只有onSuccess和onError事件,只能发射一次 Completable:简化版的Observable,只有onComplete和onError事件,不能发射数据,常结合andThen操作符使用 Maybe:简化版的Observable,没有onNext方法,只能发射一次 这五种可以相互转换。 6、观察者模式 定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。 作用是UI层与具体的业务逻辑解耦。 7、操作符 创建操作符: create:创建一个被观察者 just:创建一个被观察者,并发送事件,发送的事件不可以超过10个以上 from:fromArray fromCallable fromFuture fromIterable 转换操作符: map floatMap:转换的数据是无序的,和map类型,但它返回的是一个新的Observable concatMap:多个观察者组合到一起,转换的数据是有序的,最多可以发送4个事件 buffer:一定数量的事件放到缓冲区当中一并发出 groupBy scan window 功能操作符 过滤操作符 条件操作符
还是需要把各种操作符系统地学一遍,下一章具体来讲原理。