Как реализовать мой собственный кэш диска с библиотекой picasso - Android?

Я использую библиотеку picasso для загрузки изображений для своего приложения. Но я не использую кэширование собственного диска (sdcard) с библиотекой picasso.

Ответ 1

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#setCache-com.squareup.okhttp.Cache-

Ответ 2

@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);

Надеюсь, что это поможет.