Универсальный загрузчик изображений - удаление одного изображения из кеша не работает

Я вызываю следующий код перед загрузкой изображения:

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());

Ниже приведен фрагмент из этот вопрос.