- 在创建Flowable时,指定BackpressureStrategy。例如将BackpressureStrategy.BUFFER作为参数传递给Flowable的create方法。
示例代码:
Flowable flowable = Flowable.create(emitter -> {
for (int i = 1; i <= 1000; i++) {
if (!emitter.isCancelled()) {
emitter.onNext(i);
}
}
if (!emitter.isCancelled()) {
emitter.onComplete();
}
}, BackpressureStrategy.BUFFER);
- 使用Flowable的doOnCancel方法。在这个方法中,我们可以手动取消订阅。
示例代码:
Flowable flowable = Flowable.range(1, 1000)
.doOnCancel(() -> Log.d(TAG, "Cancel Subscription"));
订阅时:
flowable.subscribe(new DisposableSubscriber() {
@Override
public void onNext(Integer integer) {
Log.d(TAG, "onNext: " + integer);
}
@Override
public void onError(Throwable t) {
Log.e(TAG, "onError: ", t);
}
@Override
public void onComplete() {
Log.d(TAG, "onComplete");
}
});