前言
一、什么是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
-
:核心线程为1的 ScheduledThreadPoolSchedule.io()
SubscribeOn(): 指定
subscribe()
发生的线程,即
Observable.onSubscribe()
被激活所处的线程,事件产生的线程。
observeOn():Subscribe运行的线程,事件消费线程。
变换
map:
flatmap:
三、RxJava原理篇
四、适用场景
- 和
结合Retrofit
- RxBinding
- 异步操作
- RxBus
思维导图
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIwczX0xiRGZkRGZ0Xy9GbvNGL2EzXlpXazxSP9cmTykleilGbHFmNk1mYoR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL5MTMyQTMycTMxAzMwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
参考:
RxJava简洁封装之道
Android响应式编程时代——RxJava
关于RxJava最友好的文章(初级篇)