假設我有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鏈??