不幸的是,订阅在所有方法的相同线程中(onNext,onError和onCompleted
但是你可以在Schedulers.io()和onNext(T t)方法中观察,创建一个新的Observable来监听MainThread,如下所示:
ParseObservable.find(myQuery)
.map(myMapFunc())
.subscribeOn(Schedulers.io())
.subscribe(
new Subscriber() {
@Override
public void onError(Throwable e) {
Log.e("error","error",e);
}
@Override
public void onNext(T t) {
Observable.just(t)
.observeOn(AndroidSchedulers.mainThread())
.subscribe((t) -> {
// do something in MainThread
})
}
public void onCompleted() {
// ... worker thread again instead of mainThread
}
}
)
);
我希望它有所帮助!