RxJava 中的 Observable 与 Subscriber 详解
1. Subscriber 简介
Subscriber 是一种高级且轻量级的 Observer,它无需处理大量内部状态。它将请求管理和取消过程整合到 Subscription 接口中,而非分别创建 Producer 和 Subscription。Subscriber 支持背压(backpressure),其接口及方法如下:
interface Subscriber<T> implements Observer<T>, Subscription {
void onNext(T t);
void onError(Throwable t);
void onComplete();
void onSubscribe();
}
在 RxJava 2.0 中,包名从 org.reactivestreams
改为 rx
。同时,为解决 Subscriber 无法从外部添加、取消或请求资源的问题,API 为 Observable(如 Flowable)提供了抽象类,如 DefaultSubscriber
、 DisposableSubscriber
和 ResourceSubscriber
,这些类可通过 dispose()
方法进行资源跟踪和取消。