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

问题描述:

正在使用glide v4okhttp3与下滑融合。我想改变它的超时时间。怎么做?通过扩展AppGlideModule还是有其他方法吗?我已经搜索了适当的文档,但没有看到任何地方。如何用Okhttp3和GlideV4设置超时时间?

您可以通过创建一个类来改变超时时间,该类延伸AppGlideModule并且具有注释@GlideModule。然后您覆盖方法registerComponents,并在其内部创建一个新的OkHttpClient,您可以使用该新方法控制滑翔请求超时。

首先,你应该在的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.xGlide 4.x之间的区别的详细信息。