关于何时以及是否将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); });
解决方法
在当前版本的Retrofit(1.9.0)中,Retrofit使用自己的执行程序来执行http调用,而不使用subscribeOn方法给出的
the executor backed by the schedulers.
在您的情况下,调度程序将仅用于执行将http调用添加到改造使用的执行程序的代码. (所以它有点无用……)
但是,关于Retrofit on Github的实际代码,改造停止使用他的执行程序,因此可以使用RxJava调度程序.