前言
使用RxJava挺久的了,但是这后面接触的少,所以有一些淡忘了,于是今天再一次总结了一下,刚好最近都在用Kotlin,所以以下代码是使用Kotlin编写的。
RxJava可以说是这样的:
- 异步:可以很方便地切换线程
- 简洁:在复杂的逻辑中保持代码简洁
基本使用
1.创建一个Observer
- onNext:观察数据
- onError:事件队列失败调用的方法
- onCompleted:事件队列完成的方法
onError和onCompleted只能有一个被调用
Subscriber:是Observer的一个子类,使用它观察的时候,最开始会调用onStart方法,其他方法不变
2.创建Observable:
val observable = Observable.create(Observable.OnSubscribe<String> {
//这里的it为observer
it.onNext("1")
it.onNext("2")
it.onNext("3")
it.onCompleted()
})
3.开始监听
observable.subscribe(observer)
当调用subscribe方法后,如果观察者是Observer,那么会将它封装到一个Subscriber中。然后最后会调用OnSubscribe的call方法。
4.just方法
//相当于多次调用Subscriber对象的onNext()方法
val observable = Observable.just("1", "2", "...")
5.from方法