Android 在构建OkHttpClient时,如何设置并发请求的数量? 背景

Android 在构建OkHttpClient时,如何设置并发请求的数量? 背景,android,retrofit2,okhttp,Android,Retrofit2,Okhttp,我正在建立一个改造客户端。作为这个客户机的一部分,我还在其中构建一个OkHttpClient。下面是我所说的代码: public static final String BASE_URL = "https://api.darksky.net/forecast/<secret-key>/"; public static final OkHttpClient.Builder httpClient = new OkHttpClient.Builder().dispatcher() pri

我正在建立一个改造客户端。作为这个客户机的一部分,我还在其中构建一个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;
}
public静态最终字符串BASE\u URL=”https://api.darksky.net/forecast//";
public static final OkHttpClient.Builder httpClient=new OkHttpClient.Builder().dispatcher()
私人静态改装=空;
公共静态DarkSkyEndpoints getClient(){
如果(改装==null){
改装=新改装.Builder()
.baseUrl(基本URL)
.addConverterFactory(GsonConverterFactory.create())
.client(httpClient.build())
.build();
}
DarkSkyEndpoints endpoints=改装.create(DarkSkyEndpoints.class);
返回端点;
}
我想要什么 我想构建一个一次只允许1个并发线程的OkHttpClient

我所知道的
  • 我知道有一个名为的方法可以链接到OkHttpClient.Builder()旁边,如上所示

  • 我知道这个类有一个方法可以完成我想要做的事情

  • 我不知道的是
    在构建OkHttpClient进行改造时,如何设置并发线程的最大数量?

    您需要创建
    Dispatcher
    类的实例,并将其传递给
    Dispatcher()
    方法。试着这样做:

    Dispatcher dispatcher = new Dispatcher();
    dispatcher.setMaxRequests(MAX_REQUESTS_NUMBER);
    public static final OkHttpClient httpClient = new 
    OkHttpClient.Builder().dispatcher(dispatcher).build();
    ....
    retrofit = new Retrofit.Builder()
                .baseUrl(BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .client(httpClient)
                .build();