【发布时间】:2019-03-18 01:11:54
【问题描述】:
背景
我正在构建一个 Retrofit 客户端。作为该客户端的一部分,我还在其中构建了一个 OkHttpClient。下面是我所说的代码:
public static final String BASE_URL = "https://api.darksky.net/forecast/<secret-key>/";
public static final OkHttpClient.Builder httpClient = new OkHttpClient.Builder().dispatcher()
private static Retrofit retrofit = null;
public static DarkSkyEndpoints getClient() {
if (retrofit == null) {
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.client(httpClient.build())
.build();
}
DarkSkyEndpoints endpoints = retrofit.create(DarkSkyEndpoints.class);
return endpoints;
}
我想要什么
我想构建一个一次只允许 1 个并发线程的 OkHttpClient。
我知道的
我知道有一个名为 dispatcher() 的方法可以链接到 OkHttpClient.Builder() 旁边,如上所示。
我知道Dispatcher 类有一个方法setMaxRequests() 可以完全完成我想做的事情。
我不知道的事情
构建 OkHttpClient for Retrofit 时如何设置最大并发线程数?
【问题讨论】: