Очистить кеш Пикассо
Я уже видел все предложенные здесь решения, и у меня ничего не получалось.
Как я могу очистить кеш Пикассо в моем приложении?
Я пытался использовать аннулировать - не работает. Я видел кое-что о Picasso.cache.clear, но невозможно получить прямой доступ к кешу.
(пожалуйста, не предлагайте мне использовать NO_CACHE)
Благодарю.
2 ответа
Добавьте этот класс в пакет com.squareup.picasso.
package com.squareup.picasso;
public class PicassoTools {
public static void clearCache (Picasso p) {
p.cache.clear();
}
}
Поскольку кеш имеет видимость пакета, этот класс утилит может очистить кеш для вас. Вы просто должны это назвать:
PicassoTools.clearCache(Picasso.with(context));
Просто добавьте этот файл в путь... / java / com / squareup / picasso
PS Я настоятельно рекомендую использовать glide вместо picasso, он имеет более мощные функции для управления кэшированием и потрясающие обратные вызовы при загрузке, например, для обнаружения ошибок при загрузке.
Обновите свою библиотеку Picasso: compile 'com.squareup.picasso:picasso:2.5.2'
,
Как Picasso.invalidate()
доступно только для Gradle версии 2.5.0 и выше.
А для очистки кеша используйте нижеприведенную функцию:
Picasso.with(context).invalidate(file);