Удаляет ли 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 действительно удаляет кэшированные изображения, если общий размер кэшированных изображений превышает ограничение размера кэша.