2022-01-19 遇到的一点小问题
最近用bash写了个cgi脚本获取图片,没有做压缩处理,所以遇到大一点的图片下载会比较慢。
App用的Glide,超时时间太短,会下载失败。
网上找了下,很多介绍通过使用okhttp来修改Glide的超时时间,随便找了个,试了一下,可以实现。
记录一下。
.
.
implementation 'com.github.bumptech.glide:glide:4.11.0'
implementation 'com.github.bumptech.glide:okhttp3-integration:4.11.0'
版本是看的mvnrepository,选择的4.11.0。
package com.wannoo.test;
import android.content.Context;
import androidx.annotation.NonNull;
import com.bumptech.glide.Glide;
import com.bumptech.glide.Registry;
import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.integration.okhttp3.OkHttpUrlLoader;
import com.bumptech.glide.load.model.GlideUrl;
import com.bumptech.glide.module.AppGlideModule;
import java.io.InputStream;
import java.util.concurrent.TimeUnit;
import okhttp3.OkHttpClient;
@GlideModule
public class MyGlideAppModule extends AppGlideModule {
@Override
public void registerComponents(@NonNull Context context, Glide glide, @NonNull Registry registry) {
OkHttpClient client = new OkHttpClient.Builder()
.readTimeout(120, TimeUnit.SECONDS)
.build();
OkHttpUrlLoader.Factory factory = new OkHttpUrlLoader.Factory(client);
glide.getRegistry().replace(GlideUrl.class, InputStream.class, factory);
}
}
用的@GlideModule,不用在AndroidManifest.xml注册GlideModule。