【发布时间】:2015-11-02 09:21:30
【问题描述】:
在下面的代码中,我需要在取消订阅时释放一些资源(它记录“释放”)。
Observable first = Observable.create(new Observable.OnSubscribe<Object>() {
@Override
public void call(Subscriber<? super Object> subscriber) {
subscriber.add(Subscriptions.create(() -> {
log(“release”);
}));
}
}).doOnUnsubscribe(() -> log(“first”));
Observable second = Observable.create(…).doOnUnsubscribe(() -> log(“second”));
Observable result = first.mergeWith(second).doOnUnsubscribe(() -> log(“result”));
Subscription subscription = result.subscribe(…);
//…
subscription.unsubscribe();
但它只记录“结果”。看起来取消订阅不会传播到合并的子可观察对象。那么如何在第一个 observable 的 Observable.OnSubscribe 中处理取消订阅呢?
【问题讨论】:
标签: java reactive-programming rx-java rx-android