Удаляет ли Picasso автоматически неиспользуемые изображения из каталога Picasso-cache?

Удаляет ли Picasso автоматически неиспользуемые изображения из каталога Picasso-cache, или мы должны вручную вызвать Picasso.with(getActivity()).invalidate(file); удалить их?

1 ответ

По сути, Picasso может использовать два следующих HTTP-клиента: библиотеку OkHttp или UrlConnection учебный класс. Если вы OkHttp, Picasso будет загружать изображения через его OkHttpDownloader класс, и если вы используете UrlConnection тогда Пикассо будет использовать UrlConnectionDownloader,

Теперь в обоих случаях загрузчики имеют свои механизмы кэширования. UrlConnectionDownloader устанавливает его кеширование следующим образом:

  if (cache == null) {
    long maxSize = Utils.calculateDiskCacheSize(cacheDir);
    cache = HttpResponseCache.install(cacheDir, maxSize);
  }

... а также OkHttpDownloader устанавливает кеширование так:

this(defaultOkHttpClient());
try {
  client.setCache(new com.squareup.okhttp.Cache(cacheDir, maxSize));
} catch (IOException ignored) {
}

Мы видим, что в обоих случаях у нас есть каталог для кэширования с ограничением размера. Итак, ответ на ваш вопрос: да, Picasso действительно удаляет кэшированные изображения, если общий размер кэшированных изображений превышает ограничение размера кэша.

Другие вопросы по тегам