У меня есть сборка Rxjava примерно так:
val observable = dialogPresenter.show(dialogData, viewContext!!)
.subscribeOn(mainScheduler)
.observeOn(mainScheduler)
.doOnDispose(dialogData::dismiss)
Когда подписка удаляется, вызов dialogData::dismiss
происходит в потоке, отличном от используемого mainScheduler
, который, как следует из названия, использует основной поток для конкретной платформы, на которой выполняется код. Javadoc для doOnDispose()
говорит, что он не работает по умолчанию для определенного планировщика, но я ожидал, что он будет использовать либо планировщик subscribeOn()
, либо планировщик observeOn
. Так что же он использует и есть ли элегантный способ управления тем, в каком потоке он выполняется?