将subscribeOn与Retrofit一起使用

时间:2015-02-11 19:27:13

标签: android retrofit rx-java

关于何时以及是否将subscribeOn与Retrofit一起使用,存在相互矛盾的信息。

Here is an answer说不要使用subscribeOn Here is an answer似乎暗示subscribeOn没有良好的默认设置 Here is example code使用subscribeOn

那么,一劳永逸,何时应该使用subscribeOn和什么线程?使用或不使用subscribeOn的可能后果是什么?

apiService.issueRequest()
    // Is this useful? Required? Bad practice?
    .subscribeOn(Schedulers.io())
    // Do actions on main thread
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(new Action1<Response>() {
        @Override public void call(Response response) {
            handleResponse(response);
    });

1 个答案:

答案 0 :(得分:6)

在当前版本的Retrofit(1.9.0)中,Retrofit使用自己的执行程序执行http调用,并且不使用subscribeOn方法提供的the executor backed by the schedulers

在您的情况下,调度程序将仅用于执行将http调用添加到改造使用的执行程序的代码。 (所以它有点无用......)

但是,关于来自Retrofit on Github的实际代码,改装停止使用他的执行程序,因此可能会使用RxJava调度程序。