Универсальный загрузчик изображений - удаление одного изображения из кеша не работает
Я вызываю следующий код перед загрузкой изображения:
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...
Ответы
Ответ 1
То, что ответил @vanomart, идеально, просто чтобы обновить ответ. В настоящее время UIL поддерживает,
MemoryCacheUtils.removeFromCache(imageUri, imageLoader.getMemoryCache());
DiskCacheUtils.removeFromCache(imageUri, imageLoader.getDiskCache());
Итак, есть лучший способ очистить кеш диска.
Ответ 2
По словам разработчика этой библиотеки, решение довольно простое. Все, что вам нужно сделать, - удалить кешированное изображение из памяти, а также с диска. Как это сделать показано ниже.
File imageFile = imageLoader.getDiscCache().get(imageUri);
if (imageFile.exists()) {
imageFile.delete();
}
MemoryCacheUtils.removeFromCache(imageUri, imageLoader.getMemoryCache());
Ниже приведен фрагмент из этот вопрос.