我将MapTiles保存到我使用getCacheDir()
检索的内部缓存中。关于缓存大小的处理,我有几个问题。
答案 0 :(得分:1)
关于如何处理大小,我想最好的方法是检查你使用了多少:
StatFs
上显示的类还可以告诉您总大小不,你真的无能为力。您的软件应该能够检查已删除的磁贴并在必要时重新下载。
作为您的apprach的替代方案,我建议您使用JakeWharton的LruDiskCache(https://github.com/JakeWharton/DiskLruCache)
我认为重新发明轮子是不好的,也是不必要的,所以如果有一个库已经完成了所有大部分的重载,我为什么还要再次编码呢?
答案 1 :(得分:0)
关于1)在我的应用程序中,我经常使用基于光盘的图像缓存。我一直使用固定的缓存大小,到目前为止工作正常。我不知道您的尺寸要求,但您可以确定可用的光盘总尺寸并计算一些比例(参见:Getting all the total and available space on Android)。您可能希望设置一些最大上限,如果您的应用占用了所有可用光盘空间,用户将不会满意;)
关于2)Android不会秘密删除您的持久文件。唯一可能发生的事情是用户决定删除应用程序的应用程序数据或所有缓存文件。在这种情况下,所有数据都将消失,您将不得不重新初始化缓存。