代码之家  ›  专栏  ›  技术社区  ›  Bincy Baby

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

  •  3
  • Bincy Baby  · 技术社区  · 7 年前

    1 回复  |  直到 5 年前
        1
  •  5
  •   Slavi Petrov    7 年前

    您可以通过创建一个类来更改超时,该类扩展了 AppGlideModule 并有注释 @GlideModule . 然后重写该方法 registerComponents 在它里面,你可以创建一个新的 OkHttpClient

    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'
    }
    

    @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 3.x Glide 4.x .