【发布时间】:2019-07-12 23:29:29
【问题描述】:
如果我写这样的东西,那么操作和通知都将在当前线程上......
Observable.fromCallable(() -> "Do Something")
.subscribe(System.out::println);
如果我像这样在后台线程上执行操作,那么操作和通知都将在后台线程上...
Observable.fromCallable(() -> "Do Something")
.subscribeOn(Schedulers.io())
.subscribe(System.out::println);
如果我想在主线程上观察并在 Android 的后台执行操作,我会这样做...
Observable.fromCallable(() -> "Do Something")
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(System.out::println);
但是如果我正在编写一个标准的 Java 程序,你想在主线程上观察到的状态是什么?
【问题讨论】:
-
您需要一个阻塞调度程序,因为 Java 主线程不是池/循环器。这仅适用于扩展项目中的 RxJava 2.x:github.com/akarnokd/RxJava2Extensions#blockingscheduler