如何确保缓存不会变满?

时间:2011-09-12 20:00:14

标签: android caching

我正在开发一个项目,该项目使用大量从网站获取文本。每周下载4张图像并将其覆盖到同一缓存中。

我担心的是缓存变得充满了存储位图数据的文件。它最初占用了大约1.45mb的缓存,并且在获取图像的时间越来越长。

那么我怎样才能确保每次下载新图像时都会删除旧图像?

或者我不需要担心清理应用程序的缓存吗?

1 个答案:

答案 0 :(得分:1)

来自文档:

getCacheDir ()

返回文件系统上特定于应用程序的缓存目录的绝对路径。这些文件将在设备运行不足时首先被删除。无法保证何时删除这些文件。 注意:您不应该依赖系统为您删除这些文件;对于缓存文件占用的空间量,应始终具有合理的最大值(例如1 MB),并在超过该空间时修剪这些文件。

由你决定,它的FileHandle你可以创建擦除更新移动重命名文件。 我可以想到一个文件检查:如果file004存在,删除它,创建新文件

或者如果您更喜欢柔和的方式,只需在您不再需要的文件上设置deleteOnExit()标记。

编辑:当然,你去了

File cachedir = getCacheDir();
for (File f : cachedir.listFiles()) {
    if(!f.getName().equals("newFiles")){
        f.delete();
    }
}