新增了个需求,用户修改头像后,修改服务器上的图片,URL不变。但是Glide还是使用之前图片的缓存,导致出现bug。网上找了半天,没有一个Glide刷新某张图片缓存的方法,于是另辟蹊径,直接删除缓存文件,重新再加载。(有毒

// 必须在子线程删除,不然会闪退
new Thread(() -> {
    // webUrl是图片的网络路径
    FutureTarget<File> future = Glide.with(mContext).load(webUrl).downloadOnly(1, 1);
    try {
        File cacheFile = future.get();
        cacheFile.delete();
    } catch (Exception e) {
        e.printStackTrace();
    }
}).start();

删除之后再使用Glide加载图片就行了,

Glide.with(mContext).load(webUrl).into(imageView);

如果一时用不到,那就预加载

Glide.with(mContext).load(webUrl).preload();