如果我写这样的话,那么两者操作和通知将在当前主题上...
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程序,那么你想要在主线程中观察到的状态是什么呢?
答案 0 :(得分:5)
通过Observable
将BlockingObservable
转换为.toBlocking()
;这为你提供了阻止等待完成的方法,获得一个项目等等。
答案 1 :(得分:4)
对于RxJava2,请使用“blockingSubscribe()
”
Flowable.fromArray(1, 2, 3)
.subscribeOn(Schedulers.computation())
.blockingSubscribe(integer -> {
System.out.println(Thread.currentThread().getName());
});