我正在使用facebook Fresco库和SimpleDraweeView来显示文件中的头像图片:
Uri avaURI = Uri.fromFile(new File(getCacheDir(), Constants.AVA_FILE_NAME));
simpleDrawee.setImageURI(avaURI);
但是如果我用图片更改了文件(删除了以前的文件并使用新图像创建了相同的文件),我该如何更新(刷新)SimpleDraweeView?它仍然显示旧版本的图像。(我试图通过Fresco.getImagePipeline().evictFromMemoryCache(avaURI);
禁用缓存,但它没有帮助。)
答案 0 :(得分:12)
我相信你走在正确的轨道上。旧图像可能存在两个以上的存储级别,其中最有可能从中拉回。它们会在60天后过期,我相信,所以它也需要冲洗。
Fresco.getImagePipeline().evictFromMemoryCache(avaURI);
Fresco.getImagePipelineFactory().getMainDiskStorageCache().remove(new SimpleCacheKey(avaURI.toString()));
Fresco.getImagePipelineFactory().getSmallImageDiskStorageCache().remove(new SimpleCacheKey(avaURI.toString()));
答案 1 :(得分:2)
ImagePipeline imagePipeline = Fresco.getImagePipeline();
imagePipeline.evictFromCache(Uri);
imagePipeline.clearCaches();
draweeView.setImageURI(Uri);