8

我正在使用 Facebook Fresco 库和 SimpleDraweeView 从文件中显示头像图像:

  Uri avaURI = Uri.fromFile(new File(getCacheDir(), Constants.AVA_FILE_NAME));
  simpleDrawee.setImageURI(avaURI);

但是如果我用图片更改了文件(删除了以前的文件并用新图像创建了同一个文件),我该如何更新(刷新)SimpleDraweeView?它仍然显示旧版本的图像。(我试图通过禁用缓存Fresco.getImagePipeline().evictFromMemoryCache(avaURI);但没有帮助)。

4

2 回答 2

13

我相信你是在正确的轨道上。旧映像可能存在另外两个存储级别,最有可能从中拉回。我相信这些会在 60 天后过期,所以也需要冲洗。

Fresco.getImagePipeline().evictFromMemoryCache(avaURI);

Fresco.getImagePipelineFactory().getMainDiskStorageCache().remove(new SimpleCacheKey(avaURI.toString()));
Fresco.getImagePipelineFactory().getSmallImageDiskStorageCache().remove(new SimpleCacheKey(avaURI.toString()));
于 2015-06-04T08:24:10.397 回答
3
ImagePipeline imagePipeline = Fresco.getImagePipeline();
    imagePipeline.evictFromCache(Uri);
    imagePipeline.clearCaches();
draweeView.setImageURI(Uri);
于 2017-04-20T06:54:24.690 回答