RxJava запускает часть плана в основной теме

Привет, я пытаюсь реализовать Единый наблюдаемый, который объединяет два запроса вместе.

В промежутке между двумя запросами, которые я делаю, я уведомляю обратный вызов, чтобы обновить интерфейс с ответом от запроса, а затем запустить следующий запрос в потоке Schedulaers.io.

Проблема, с которой я сталкиваюсь, заключается в том, что она пытается обновить пользовательский интерфейс из потока schedulars.io, и результаты ничего не обновляются в потоке ui.

i cold wrap the calback на блоке кода RunOnUiThread в android, но интересно, есть ли более элегантный способ сделать это?

я проверил couroutines, и, похоже, дело только в том, чтобы поместить блок кода в отдельный поток.

Вот мой текущий код

override fun getHomeScreenInformation() { delegator.requestOne() .flatMap { responseOne-> homeScreenCallBack.onResponseOneRecieved(responseOne) delegator.requestTwo() } .observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.io()) .subscribe( {responseTwo-> homeScreenCallBack.onResponseTwoRecieved(responseTwo)}, {error -> homeScreenCallBack.onError()} ) } 

Примените observeOn(AndroidSchedulers.mainThread()) столько раз, сколько необходимо:

 delegator.requestOne() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) // <---------------------- .flatMap { responseOne -> homeScreenCallBack.onResponseOneRecieved(responseOne) delegator.requestTwo() .subscribeOn(Schedulers.io()) // <---------------------- } .observeOn(AndroidSchedulers.mainThread()) .subscribe( {responseTwo-> homeScreenCallBack.onResponseTwoRecieved(responseTwo)}, {error -> homeScreenCallBack.onError()} )