使用滑翔v4和okhttp3与滑翔整合。我想改变它的超时时间。怎么做?通过扩展AppGlideModule还是有其他方法吗?我搜索了适当的文档,但没有在任何地方看到过。
答案 0 :(得分:4)
您可以通过创建一个扩展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类的示例代码:
@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提供解决方案的信用!
另外,有关Glide
和Glide 3.x
之间差异的详细信息,请参阅this article关于Glide 4.x
自定义模块的信息。