作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我正在尝试实现一个将两个请求链接在一起的单一可观察对象。
在我发出的两个请求之间,我通知回调以使用请求一个的响应更新 UI,然后在 Schedulaers.io 线程中启动下一个请求。
我遇到的问题是它也尝试从 schedulars.io 线程更新 UI,结果导致 ui 线程中没有任何更新。
我在 Android 中的 RunOnUiThread 代码块上冷包装了回调,但想知道是否有更优雅的方式来实现它?
我检查了协程,它似乎只是处理将一段代码放在一个单独的线程中。
这是我当前的代码
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()}
)
关于android - RxJava 在主线程中运行部分平面图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48249486/
有人可以向我澄清主线 DHT 规范中的声明吗? Upon inserting the first node into its routing table and when starting up th
我正在尝试使用 USB 小工具驱动程序使嵌入式设备作为 MTP 设备工作。 我知道 Android 从大容量存储设备切换到 MTP 设备已经有一段时间了,并且找到了 source code for M
我是一名优秀的程序员,十分优秀!