以下记录基于RxJava3.0
基本介绍
RxJava 是 NetFlix 出品的 Java 框架,RxJava 在 GitHub 主页上的自我介绍是 "a library for composing asynchronous and event-based programs using observable sequences for the Java VM"(一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库)。这就是 RxJava ,概括得非常精准。
个人理解RxJava
1、基于事件/数据,主要使用观察者模式,中间加入各种转换,生成事件链条
2、触发事件,整个链条联动,数据由可观察者经过一系列操作,最终到观察者
基本对象
Observable 被观察者
Observer 观察者
ObservableEmitter 事件发射器
基础使用
//创建观察者
var observer: Observer<String> = object : Observer<String> {
override fun onSubscribe(d: Disposable) {
}
override fun onError(e: Throwable) {
}
override fun onComplete() {
}
override fun onNext(t: String) {
Log.e(TAG, "onNext $t");
}
}
//创建被观察者
var observable: Observable<String> =
Observable.create<String>(
//source,数据源
object : ObservableOnSubscribe<String> {
override fun subscribe(emitter: ObservableEmitter<String>) {
emitter.onNext("事件字符串1");
emitter.onNext("事件字符串2")
emitter.onNext("事件字符串3")
}
});
//订阅操作
observable
.subscribe(observer);