我正在尝试在 Rx3 中找到 subscribeOn 的主线程
Single.just(getHeavyData())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<Data>() {
@Override
public void accept(Data d) throws Throwable {
setAdapters(d);
}
});
AndroidSchedulers.mainThread() - 与全新的 RX3 不兼容
梯度导入:implementation "io.reactivex.rxjava3:rxjava:3.0.0-RC3"
我们如何找到主线程来更改 UI?
AndroidSchedulers.mainThread() 不是 Rx Java 1,2 或 3 的一部分。它是 RxAndroid 库的一部分。将 RxAndroid 依赖项添加到您的项目中,您将获得此方法。
RxAndroid仍然使用RxJava2。在库的创建者进行更新之前,这个问题仍然存在。
新的包结构已随 3.0.0-RC2 一起发布,并且有一个支持库,以便 v2 和 v3 可以相互通信,而不会出现以前隐藏或明显的编译/运行时问题。
这也意味着模块覆盖技巧不再起作用,因此您必须手动桥接 AndroidSchedulers 或从 Retrofit 中使用的 v2 源进行转换,直到这些(以及许多其他)库开始支持 v3。
请参考this https://github.com/ReactiveX/RxJava/issues/6606#issuecomment-523989096 and this https://github.com/uber/AutoDispose/issues/366
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)