关于何时以及是否将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);
});
答案 0 :(得分:6)
在当前版本的Retrofit(1.9.0)中,Retrofit使用自己的执行程序执行http调用,并且不使用subscribeOn
方法提供的the executor backed by the schedulers。
在您的情况下,调度程序将仅用于执行将http调用添加到改造使用的执行程序的代码。 (所以它有点无用......)
但是,关于来自Retrofit on Github的实际代码,改装停止使用他的执行程序,因此可能会使用RxJava调度程序。