2
我使用PublishProcessor<?>
來爲多個觀察者提供服務。有沒有辦法知道第一個觀察者何時被訂閱,最後一個觀察者被處置?RxJava2:第一次訂閱和最後一次取消訂閱觀察者的PublishProcessor回調
我使用PublishProcessor<?>
來爲多個觀察者提供服務。有沒有辦法知道第一個觀察者何時被訂閱,最後一個觀察者被處置?RxJava2:第一次訂閱和最後一次取消訂閱觀察者的PublishProcessor回調
不是直接的,你需要捕獲用戶和消除:
PublishProcessor<?> pp = ...
AtomicInteger counter = new AtomicInteger();
Action onFirst = ...
Action onLast = ...
Flowable<?> f = pp.doOnSubscribe(s -> {
if (counter.getAndIncrement() == 0) {
onFirst.run();
}
})
.doFinally(() -> {
if (counter.decrementAndGet() == 0) {
onLast.run();
}
})
// use f for subscribe() instead of pp