【问题标题】:Make All Observables subscribeon and observeon something让所有 Observables 订阅并观察某事
【发布时间】:2017-07-25 06:50:58
【问题描述】:

我正在我的 android 应用程序中使用改造和 rxjava 实现 http 请求。 我反复有这个块代码:

apiService.getFromServer()
 .subscribeOn(Schedulers.io())
 .observeOn(AndroidSchedulers.mainThread())
 ...

有没有办法不重复?

【问题讨论】:

    标签: android retrofit rx-java rx-android


    【解决方案1】:

    是的,您可以将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 了解这一点。

    【讨论】:

      猜你喜欢
      • 2019-06-19
      • 1970-01-01
      • 2020-01-23
      • 1970-01-01
      • 1970-01-01
      • 2018-07-21
      • 2013-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多