如何用Okhttp3和GlideV4设置超时时间?
问题描述:
正在使用glide v4
和okhttp3
与下滑融合。我想改变它的超时时间。怎么做?通过扩展AppGlideModule
还是有其他方法吗?我已经搜索了适当的文档,但没有看到任何地方。如何用Okhttp3和GlideV4设置超时时间?
答
您可以通过创建一个类来改变超时时间,该类延伸AppGlideModule
并且具有注释@GlideModule
。然后您覆盖方法registerComponents
,并在其内部创建一个新的OkHttpClient
,您可以使用该新方法控制滑翔请求超时。
首先,你应该在的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类的示例代码:
@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 article约Glide
的模块定制约Glide 3.x
和Glide 4.x
之间的区别的详细信息。