.doOnNext
является оператором побочных эффектов. Что вы делаете:
timingObservable
.subscribeOn(Schedulers.io())
.doOnError(Timber::e)
.subscribe(timing -> {episodeManager.saveTiming(timing);});
Буду просто создавать одноразовые. Этот одноразовый не будет частью потока. Также обратите внимание, что поток timingObservable
теперь будет работать совершенно независимо, потому что, как я только что сказал, doOnNext
является оператором побочного эффекта. То, что вы делаете, - это звонок «забей и забудь». Чтобы сделать ответ как часть потока, используйте. flatMap
вместо. doOnNext
. Он объединит ваши ответы по мере их поступления и направит их * последующим операторам.
В идеале, реактивный поток должен быть подписан только один раз - вы делаете это дважды. Это немедленный кодовый запах.