前言
一、什么是RxJava?
RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.
这是github地址的解释,RxJava是使用观察者队列的异步事件流链式编程框架。既然是框架,我们就需要去学习怎么使用然后再去了解原理。
二、Rxjava使用篇
参考文档: 官方文档
常见名词:
Observer(观察者) Observable(被观察者) Subscribe(订阅) Scheduler(调度器) flat(铺平) lift(转化)
Operator(操作者)
概念
- Observer:观察者
- Observable:被观察者
- Subscribe:订阅
回调
- onNext():事件触发
- onCompleted():事件队列完结。不会有新的
onNext()
发出,触发onCompleted
- onError():事件队列异常。事件处理发生异常,
onError()
会触发,同时队列自动终止,不允许再有事件发出。
onCompleted()
和onError
只会触发一个(互斥),而且都是最后一个事件。
Observer
调度器 Scheduler
Schedule.io()
:核心线程为1的 ScheduledThreadPool
evictor = Executors.newScheduledThreadPool(1, EVICTOR_THREAD_FACTORY);
SubscribeOn(): 指定subscribe()
发生的线程,即Observable.onSubscribe()
被激活所处的线程,事件产生的线程。
observeOn():Subscribe运行的线程,事件消费线程。
变换
map:
flatmap:
三、RxJava原理篇
四、适用场景
- 和
Retrofit
结合 - RxBinding
- 异步操作
- RxBus