【发布时间】:2018-12-29 09:00:19
【问题描述】:
我有依赖于服务 A 响应的 ServiceB,ServiceB 被触发,但现在我遇到了 NetworkOnMainThreadException @ onError 的错误。我是 RxJava 新手,刚刚开始尝试示例。请帮忙,谢谢。
ServiceA
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.flatMap(new Function<ResponseA, Observable<ResponseB>>() {
@Override
public Observable<Execution> apply(ResponseA responseA) throws Exception {
return ServiceB(responseA.some_id); #ServiceB gets triggered here
}
})
.subscribe(new Observer<ResponseB>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onComplete() {
}
@Override
public void onError(Throwable t) {
#NetworkOnMainThreadException!
}
@Override
public void onNext(ResponseB responseB) {
}
});
【问题讨论】:
-
在
onComplete()或onNext方法中触发服务 -
@ping 将你的 flatmap(...) 放在 observeOn() 之前,一切都会好起来的。
-
谢谢@MRah 你是对的,它解决了问题!
标签: android rx-java retrofit rx-java2