Очистить кеш Пикассо

Я уже видел все предложенные здесь решения, и у меня ничего не получалось.

Как я могу очистить кеш Пикассо в моем приложении?

Я пытался использовать аннулировать - не работает. Я видел кое-что о 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);
Другие вопросы по тегам