JakeWharton的DiskLruCache会自动清除

时间:2016-02-04 23:00:31

标签: android picasso okhttp offline-caching android-lru-cache

我使用Picasso和okhttp将图像下载并缓存到磁盘上。 我使用下面的代码片段为okhttp客户端设置10MB的缓存并将其用于Picasso。

File folder = new File(context.getCacheDir(),"HomePageCache");
if (!folder.exists())
   folder.mkdir();
okHttpClient.setCache(new com.squareup.okhttp.Cache(folder, 1024 * 1024 * 10));
OkHttpDownloader okHttpDownloader = new OkHttpDownloader(okHttpClient);
picasso = new com.squareup.picasso.Picasso.Builder(context).indicatorsEnabled(true).downloader(okHttpDownloader).build();

即使在离线状态下,大部分时间都可以正常缓存和重新加载图像,但问题是有时它只是完全清除了图像缓存。

我正在检查图像缓存的大小,以确保它从未超过2 MB。

还有其他原因导致我的缓存被清除吗?

1 个答案:

答案 0 :(得分:0)

与评论中指出的Nikola一样,缓存过期标头负责使缓存的图像无效。