Api.service().random3Products()
.flatMap {
Log.v(TAG, "flatMap1 ${Thread.currentThread().name}")
// Do some ui works
return@flatMap Api.service().getMenuListRx()
}
.flatMap { menuList ->
// Do some ui works
Log.v(TAG, "flatMap2 ${Thread.currentThread().name}")
return@flatMap Observable.concatEager(List(menuList.menus.size){
Api.service().randomTenProductsByCategoryId(menuList.menus[it].menuId)
})
}
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe{
// Also do some ui works
Log.v(TAG, "subscribe ${Thread.currentThread().name}")
}
这是我的代码。我想在flatMap中处理一些ui工作,并且在ui工作结束后返回一个可观察到的发送下一个请求。但是问题是 NetworkOnMainThreadException 或只有创建视图层次结构的原始线程才能触摸其视图。如何使代码正常工作。