В приведенном ниже коде мне нужно освободить некоторые ресурсы при отказе от подписки (где он регистрирует «освобождение»).
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.OnSubscribe первого наблюдаемого?