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 负责使缓存的图像失效。
我正在使用 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 负责使缓存的图像失效。