我需要缓存图像让我们说14天。在某些Web服务上,我会使用ExpiresActive On
和ExpiresDefault "access plus 14 days"
设置apache来执行此操作。
有可能用android做到这一点吗?当然,我可以将图像存储在手机存储设备上,但这不是我正在寻找的解决方案。
我读了这个article (Caching Bitmaps) - 但是使用LruCache
然后调用finish()
会破坏缓存,我是对的还是我缺少的东西?
除了将文件保存到手机的存储空间外,还有其他解决方案吗?
答案 0 :(得分:1)
您拥有的一个选项是使用UniversalImageLoader。有了这个,你不必重新发明轮子。您可以通过以下方式缓存图像:
DisplayImageOptions options = new DisplayImageOptions.Builder().cacheInMemory(true).cache.build();
ImageLoader.getInstance().displayImage(url, iv, options,
new SimpleImageLoadingListener() {
...
}
还有其他选项,例如cacheOnDisk(true)
。如果您需要特定天数的缓存机制,这可能不是您问题的最终解决方案。
修改强>
另一个好的选择是使用Sync Adapter。不幸的是,这是一个相当长的话题,所以请按照我提供的链接。要使用它,您可能必须为您的应用创建ContentProvider
,然后创建一个实现AbstractThreadedSyncAdapter
的类。
答案 1 :(得分:0)
所以最后我使用SharedPreferences
和File
工作原理
我有一些带有base64图像字符串的json。我需要将这些值存储7天。所以我将json写入文件,保存,将日期字符串(创建日期)写入SharedPreferences。
我不确定这是否是正确的解决方案,但它对我有用。