Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使所有的可观察物都订阅并观察到某物_Android_Retrofit_Rx Java_Rx Android - Fatal编程技术网

Android 使所有的可观察物都订阅并观察到某物

Android 使所有的可观察物都订阅并观察到某物,android,retrofit,rx-java,rx-android,Android,Retrofit,Rx Java,Rx Android,我正在android应用程序中使用改型和rxjava实现http请求。 我重复了这个代码块: apiService.getFromServer() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) ... 有没有办法不重复这一点?是的,您可以将compose操作符与Transformer对象一起使用,该对象将输入可观察转换为订阅io的可观察,主线程上的观察者(当然也可以是您喜欢的任何其他转换)

我正在android应用程序中使用改型和rxjava实现http请求。 我重复了这个代码块:

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

有没有办法不重复这一点?

是的,您可以将
compose
操作符与
Transformer
对象一起使用,该对象将输入可观察转换为订阅io的
可观察
,主线程上的观察者(当然也可以是您喜欢的任何其他转换)

关于这一点,你可以阅读

<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())
   ...