2
我在我的android應用中使用retrofit和rxjava實現http請求。 和我有這個代碼塊重複:使所有Observable subscribeon和觀察某事
apiService.getFromServer()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
...
有沒有辦法在此不贅述?
我在我的android應用中使用retrofit和rxjava實現http請求。 和我有這個代碼塊重複:使所有Observable subscribeon和觀察某事
apiService.getFromServer()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
...
有沒有辦法在此不贅述?
是的,你可以使用compose
運營商與Transformer
對象,將改變輸入可觀察到Observable
,訂閱的IO,觀察者對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。
謝謝@yosriz。這是一個非常有用的博客。 – rezandro