我正在我的 Android 应用程序中使用改造和 rxjava 实现 http 请求。 我反复有这个 block 代码:
apiService.getFromServer()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
...
有没有办法不重复这个?
最佳答案
是的,您可以将 compose
运算符与 Transformer
对象一起使用,将输入可观察对象转换为订阅 io 的 Observable
,观察者在 mainThread (或者当然是你喜欢的任何其他转换)
<T> Transformer<T, T> applySchedulers() {
return new Transformer<T, T>() {
@Override
public Observable<T> call(Observable<T> observable) {
return observable.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
};
}
和你的代码:
apiService.getFromServer()
.compose(applySchedulers())
...
你可以阅读 Dan Lew's great post对此。
关于android - 让所有 Observables 订阅并观察某事,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42608049/