Как я могу обновить изображение fresco SimpleDraweeView, если оно было установлено один раз с помощью setImageURI

Я использую библиотеку Facebook Fresco и SimpleDraweeView для отображения изображения аватара из файла:

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

Но что, если я изменил файл с изображением (удалил предыдущий файл и создал такой же с новым изображением), как я могу обновить (обновить) SimpleDraweeView? Он по-прежнему отображает старую версию изображения. (Пытался отключить кеш Fresco.getImagePipeline().evictFromMemoryCache(avaURI);, но не помогло).


person Lester    schedule 26.05.2015    source источник


Ответы (1)


Я верю, что вы были на правильном пути. Есть еще два уровня хранилища, в которых может существовать старый образ, откуда он, скорее всего, возвращается. Я полагаю, что срок их действия истекает через 60 дней, поэтому их также нужно будет сбросить.

Fresco.getImagePipeline().evictFromMemoryCache(avaURI);

Fresco.getImagePipelineFactory().getMainDiskStorageCache().remove(new SimpleCacheKey(avaURI.toString()));
Fresco.getImagePipelineFactory().getSmallImageDiskStorageCache().remove(new SimpleCacheKey(avaURI.toString()));
person frogmanx    schedule 04.06.2015
comment
наткнулся на ту же проблему, есть ли более чистый способ сделать это? - person Sarthak Mittal; 18.11.2015
comment
Я считаю, что они дали нам более чистое решение благодаря использованию метода «все в одном»: Fresco.getImagePipeline().evictFromCache(uri); - person frogmanx; 19.11.2015