gpt4 book ai didi

android - 通过 retrofit2 取消所有请求

转载 作者:行者123 更新时间:2023-11-29 15:04:45 31 4
gpt4 key购买 nike

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

因为 listview 支持刷新和加载更多我需要cancel 所有请求来召回。

我知道Callcancel() 函数来取消请求。我可以通过将所有 Call 放入堆栈并为每个 Call 调用 cancel() 来取消所有请求。

还有更好的解决方案吗?

最佳答案

假设我有

 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)

随时随地调用

dispatcher.cancelAll();

关于android - 通过 retrofit2 取消所有请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38735947/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com