Как реализовать собственный дисковый кеш с библиотекой Пикассо - Android?
Я использую библиотеку Picasso для загрузки изображений для моего приложения. Но я не знаю, как реализовать собственное кэширование на диске (SDCard) с помощью библиотеки Пикассо.
2 ответа
Решение
Picasso использует HTTP-клиент для кэширования диска, и если он уже настроен, он использует его вместо установки своего собственного.
Для встроенного UrlConnection документы для установки кэша находятся здесь: https://developer.android.com/reference/android/net/http/HttpResponseCache.html
Если вы используете OkHttp, вы просто вызываете setCache: http://square.github.io/okhttp/2.x/okhttp/com/squareup/okhttp/OkHttpClient.html
@Dax, чтобы сохранить файлы в пользовательском каталоге кеша с помощью OkHttp, я бы написал что-то вроде этого -
OkHttpClient okHttpClient = new OkHttpClient();
File customCacheDirectory = new File(Environment.getExternalStorageDirectory().getAbsoluteFile() + "/MyCache");
okHttpClient.setCache(new Cache(customCacheDirectory, Integer.MAX_VALUE));
OkHttpDownloader okHttpDownloader = new OkHttpDownloader(okHttpClient);
Picasso picasso = new Picasso.Builder(mainActivity).downloader(okHttpDownloader).build();
picasso.load(imageURL).into(viewHolder.image);
Надеюсь это поможет.