假设我有Android上下面的情况:切换线程中的Rx链多次
1)从网络 2组的请求列表)显示对于每个组的一些用户界面元素 为每个组3)请求项 4)显示UI elemets因为我想做到这一点使用RxJava每个项目
:
webService.requestGroups()
.flatMap(group -> {
view.showGroup(group);
return webService.requestItems(group);
})
.toList()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(items -> view.showItems(items));
正如你可以看到我有2呼吁视图对象,每个都必须在主线程上执行。另外2个调用webService,它必须在后台线程上执行。
这段代码的问题:第一次调用view会在Android RuntimeException的背景上执行(只有原始线程可能会触及视图或其他东西)如果我将.observeOn转移到链的开头 - 第二次webService调用将会在主线程中执行(
因此,这里的问题 - 怎样才能“游”,通过螺纹多次在RxJava链??