如何使用Okhttp3和GlideV4设置超时?

问题描述 投票:3回答:1

我使用滑翔v4和okhttp3与滑翔整合。我想改变它的超时时间。怎么做?通过扩展AppGlideModule还是有其他方法吗?我搜索了适当的文档,但没有在任何地方看到。

android android-glide okhttp3
1个回答
4
投票

您可以通过创建一个类来更改超时,该类扩展了AppGlideModule并具有注释@GlideModule。然后重写方法registerComponents并在其中,您可以创建一个新的OkHttpClient,您可以使用它来控制Glide请求超时。

首先,您应该在build.gradle文件中添加GlideOkHttp3 Glide Integration库gradle依赖项:

compile 'com.github.bumptech.glide:glide:4.2.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.2.0'
compile("com.github.bumptech.glide:okhttp3-integration:4.2.0") {
    exclude group: 'glide-parent'
}

其次,自定义GlideAppModule类的示例代码:

@GlideModule
public class MyGlideAppModule extends AppGlideModule {
    @Override
    public void registerComponents(Context context, Glide glide, Registry registry) {
        OkHttpClient client = new OkHttpClient.Builder()
                .connectTimeout(20, TimeUnit.SECONDS)
                .readTimeout(20, TimeUnit.SECONDS)
                .build();

        OkHttpUrlLoader.Factory factory = new OkHttpUrlLoader.Factory(client);
        glide.getRegistry().replace(GlideUrl.class, InputStream.class, factory);
    }
}

Amir Ziarati提供解决方案!

另外,有关this articleGlide之间差异的更多信息,请参阅Glide 3.x关于Glide 4.x定制的模块。

© www.soinside.com 2019 - 2024. All rights reserved.