如何使用 Okhttp3 和 GlideV4 设置超时?
How to set timeout with Okhttp3 and GlideV4?
我正在使用 glide v4 和 okhttp3 与 glide 的集成。我想改变它的超时时间。怎么做?通过扩展 AppGlideModule 还是有任何其他方式?我已经搜索了适当的文档,但在任何地方都找不到。
您可以通过创建 class 来更改超时,它扩展 AppGlideModule
并具有注释 @GlideModule
。然后你覆盖方法 registerComponents
并在其中,你可以创建一个新的 OkHttpClient
,你可以用它来控制 Glide 请求超时。
首先,您应该在 build.gradle 文件中添加 Glide
和 OkHttp3 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的示例代码class:
@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);
}
}
感谢 提供解决方案!
此外,请参阅 this article 关于 Glide
自定义模块以了解有关 Glide 3.x
和 Glide 4.x
之间差异的更多信息。
我正在使用 glide v4 和 okhttp3 与 glide 的集成。我想改变它的超时时间。怎么做?通过扩展 AppGlideModule 还是有任何其他方式?我已经搜索了适当的文档,但在任何地方都找不到。
您可以通过创建 class 来更改超时,它扩展 AppGlideModule
并具有注释 @GlideModule
。然后你覆盖方法 registerComponents
并在其中,你可以创建一个新的 OkHttpClient
,你可以用它来控制 Glide 请求超时。
首先,您应该在 build.gradle 文件中添加 Glide
和 OkHttp3 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的示例代码class:
@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);
}
}
感谢
此外,请参阅 this article 关于 Glide
自定义模块以了解有关 Glide 3.x
和 Glide 4.x
之间差异的更多信息。