Rx java2 doOnDispose()使用哪个RxJava调度程序?

Rx java2 doOnDispose()使用哪个RxJava调度程序?,rx-java2,Rx Java2,我有一个Rxjava程序集,如下所示: val observable = dialogPresenter.show(dialogData, viewContext!!) .subscribeOn(mainScheduler) .observeOn(mainScheduler) .doOnDispose(dialogData::dismiss) 当订阅被释放时,对dialogData::Dismise的调用发生在ma

我有一个Rxjava程序集,如下所示:

    val observable = dialogPresenter.show(dialogData, viewContext!!)
            .subscribeOn(mainScheduler)
            .observeOn(mainScheduler)
            .doOnDispose(dialogData::dismiss)

当订阅被释放时,对
dialogData::Dismise
的调用发生在
mainScheduler
使用的线程以外的线程上,顾名思义,mainScheduler将主线程用于运行代码的特定平台。
doOnDispose()
的Javadoc表示默认情况下它不会在特定的调度程序上运行,但我希望它使用
subscribeOn()
调度程序或
observeOn
调度程序。那么它使用了什么?是否有一种优雅的方法来控制它在哪个线程上执行?

它在调用方线程上运行,调用方线程名为
dispose()
。操作员为上游的dispose调用切换线程。好的,因此我应该在
.doOnDispose()
调用之前添加
.unsubscribeOn(mainScheduler)
?更多挖掘告诉我
.unsubscribeOn()
调用应该在
.doOnDispose()
之后,因为它会影响上游操作。javadoc也许可以更明确地说明这一点。欢迎您对这些文档做出贡献。