2016-02-04 75 views
0

使用Picasso和okhttp来下载和缓存图像到磁盘上。 我使用下面的代码片段为okhttp客户端设置一个10MB的缓存并将其用于Picasso。JakeWharton的DiskLruCache自动清除

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

LastRecentlyUsed可能是一个原因,也检查图像响应的缓存过期标题。 –

回答

0

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