一旦系统内存不足,Android可能会自动删除CacheDir中的文件.但文档说我们不应该依赖系统清除这个缓存,因此编写额外的代码进行轮询和删除.
如果是这样的话,为何要选择getCacheDir()在getFilesDir()?两者都在内存中,而后者在清理什么以及何时清理方面为开发人员提供了更多的权力.
谢谢!
Com*_*are 29
一旦系统内存不足,Android可能会自动删除CacheDir中的文件.
正确.第三方应用程序还可以从应用程序的缓存目录中删除文件.而且,正如zapl所说,用户可以从"设置"中手动清除应用程序的缓存.
但文档说我们不应该依赖系统清除这个缓存,因此编写额外的代码进行轮询和删除.
也正确.
如果是这种情况,为什么要在getFileDir()上选择getCacheDir()?
因为操作系统,第三方应用程序和用户可以清除缓存.然而,仅仅因为那些东西可以清除缓存并不意味着他们自动会清除缓存,所以你需要不时自我清理缓存.同样地,当你的母亲可以打扫你的房间时,如果你自己打扫房间,如果你不想用扫帚打,通常是个好主意.
而后者在清理什么以及什么时候为开发商提供了更多的权力......
不,不是的.getCacheDir()返回一个File对象.getFilesDir()返回一个File对象.它们在"在清理什么以及何时清理"方面具有"开发商的权力".