通用图像加载器 - 从缓存中删除单个图像不起作用

时间:2014-03-02 10:39:57

标签: android universal-image-loader

我在加载图片之前调用了以下代码:

String url = getUrlImageIcon();
MemoryCacheUtil.removeFromCache(url, ImageLoader.getInstance().getMemoryCache());
DiscCacheUtil.removeFromCache(url, ImageLoader.getInstance().getDiscCache());

ImageLoader.getInstance().displayImage(url, imageView, listener);

我的问题是,这不是从缓存中删除图像,之后图像加载器仍在显示旧图像...旧图像甚至不再存在于服务器上......

如何正确删除图像中的所有缓存文件?

PS:我使用的是最新版本的1.9.1 ......

2 个答案:

答案 0 :(得分:15)

@vanomart的回答是完美的,只是为了更新答案。目前,UIL支持,

MemoryCacheUtils.removeFromCache(imageUri, imageLoader.getMemoryCache());
DiskCacheUtils.removeFromCache(imageUri, imageLoader.getDiskCache());

因此,有更好的方法来清除磁盘缓存。

答案 1 :(得分:7)

根据该库的开发人员解决方案非常简单。您需要做的就是从内存和磁盘中删除缓存的映像。如何做到这一点如下所示。

File imageFile = imageLoader.getDiscCache().get(imageUri);
if (imageFile.exists()) {
    imageFile.delete();
}
MemoryCacheUtils.removeFromCache(imageUri, imageLoader.getMemoryCache());

上面的代码段来自this问题。