我有一个GetService.controllerName.data
(A),每当Observable<Item>
(B)有新的{{1}时,就会发出项目}。
A ,例如PublishSubject<Item>
目标:让 A 的完整流在计算调度程序上完成工作,然后在主线程上使用结果。
实际:根据观察到 B 的位置,整个流将相应地在不同的调度程序上运行。在下面的示例中 - 在主线程上,即使通过Item
调用。
我怎样才能强迫&#39;来自A的完整流在给定的调度程序上完成其工作,并将结果发送到另一个? A.compose()无法解决问题。
实际代码:
A.subscribeOn(computationScheduler).observeOn(mainThread)
答案 0 :(得分:0)
flatMap
的每个元素都必须位于调度程序上:
return datastore.queryAll(ExerciseModel.class, true)
.subscribeOn(Schedulers.computation())
.map(transformer);
您还需要在计算调度程序上订阅整个流,否则初始订阅将在当前线程上运行。