2017-08-19 31 views

回答

4

您可以通过创建一个类来改变超时时间,该类延伸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之间的区别的详细信息。