通过retrofit2取消所有请求

时间:2016-08-03 06:27:45

标签: android retrofit2

我使用youtube API制作应用程序。我首先使用Retrofit加载列表视频,然后继续使用Retrofit加载列表中视频的所有信息。

由于listview支持刷新和加载更多我需要cancel所有要求回忆的请求。

我知道致电cancel()功能取消请求。我可以通过将所有致电添加到堆叠中取消所有请求,并为每个呼叫致电cancel()

有更好的解决方案吗?

1 个答案:

答案 0 :(得分:4)

假设我有

GCMRegistrar: internal error: retry receiver class not set yet.

现在使用 HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY); OkHttpClient.Builder httpClient = new OkHttpClient.Builder(); OkHttpClient client = httpClient.addInterceptor(interceptor).build(); Retrofit.Builder builder = new Retrofit.Builder() .baseUrl("MY URL") .client(new OkHttpClient.Builder().addInterceptor(interceptor).build()) .addConverterFactory(GsonConverterFactory.create()); OkHttpClient.Builder httpClient = new OkHttpClient.Builder(); 创建服务并设置为Dispatcher

Retrofit

只需从任何地方拨打电话

 Dispatcher dispatcher=new Dispatcher();
 dispatcher.setMaxRequests(totalRequest);
 httpClient.dispatcher(dispatcher);

 Retrofit retrofit = builder.client(client).build();
 Service servicee = retrofit.create(serviceClass)