我如何更新 fresco SimpleDraweeView 的图像,如果它是由 setImageURI 设置一次

How I can update image of fresco SimpleDraweeView, if it was set once by setImageURI

我正在使用 Facebook Fresco 库和 SimpleDraweeView 来显示来自文件的头像图像:

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

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

我相信您的选择是正确的。旧图像可能存在另外两个存储级别,最有可能从中拉回。这些在 60 天后过期,我相信,所以它也需要被刷新。

Fresco.getImagePipeline().evictFromMemoryCache(avaURI);

Fresco.getImagePipelineFactory().getMainDiskStorageCache().remove(new SimpleCacheKey(avaURI.toString()));
Fresco.getImagePipelineFactory().getSmallImageDiskStorageCache().remove(new SimpleCacheKey(avaURI.toString()));
ImagePipeline imagePipeline = Fresco.getImagePipeline();
    imagePipeline.evictFromCache(Uri);
    imagePipeline.clearCaches();
draweeView.setImageURI(Uri);