RxJava 中的 Disposable、Subject 与操作符详解
1. 理解 Disposable 接口
在 RxJava 中,Observable 会发射数据项,这些数据项会被 Subscriber 消费。但并非每次都需要消费所有发射的数据项,这取决于开发者所处理的场景。因此,我们需要一种方法来丢弃正在使用的资源。Subscriber 本身没有这样的方法,但 Disposable 接口提供了有用的 dispose()
方法。其接口定义如下:
public interface Disposable {
void dispose();
boolean isDisposed();
}
Disposable 接口负责流和资源的生命周期管理。当使用 DisposableObserver
订阅 Observable 时,可以调用 dispose()
方法来取消订阅,这类似于 Subscription.cancel()
方法。在 RxJava1 中,Subscriber 现在已重命名为 Disposable。
2. 可处置的订阅者
并非所有的 Subscriber 都是可处置的,但 DisposableSubscriber
、 ResourceSubscriber
和 DefaultSubscriber
这几个抽象类实现了 Disposable