JakeWharton 的 DiskLruCache 自动清除

JakeWharton's DiskLruCache automatically getting cleared

我正在使用 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。

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

正如评论中 Nikola 指出的那样,缓存过期 header 负责使缓存的图像失效。