一旦系统内存不足,安卓可能会自动删除CacheDir中的文件。但是文档说,我们不应该依赖于系统清除这个缓存,因此编写额外的代码来轮询和删除。
如果是这样的话,为什么要选择getCacheDir()而不是getFilesDir()呢?两者都在内存中,而后者在清理什么以及何时清理方面为开发人员提供了更多的权力。
谢谢!
发布于 2012-12-06 07:49:47
一旦系统内存不足,
安卓可能会自动删除CacheDir中的文件。
对,是这样。第三方应用程序也可以从应用程序的缓存目录中删除文件。而且,正如zapl指出的那样,用户可以从设置中手动清除应用程序的缓存。
但是文档说我们不应该依赖于系统清除这个缓存,因此编写额外的代码来轮询和删除。
也是正确的。
如果是这样的话,为什么要选择getCacheDir()而不是getFileDir()呢?
因为操作系统、第三方应用程序和用户可以清除缓存。然而,仅仅因为这些东西可以清除缓存并不意味着它们会自动清除缓存,因此您需要不时地自己清理缓存。类似地,虽然你的母亲可以帮你清理房间,但如果你不想被扫把击中,那么你自己清理房间通常是个好主意。
和后者在清理什么以及何时清理方面为开发人员提供了更多的权力。
不,它不是。getCacheDir()返回一个File对象。getFilesDir()返回一个File对象。它们在“开发人员在清理什么和何时清理方面的权力”方面是等效的。
发布于 2012-12-06 03:54:53
getCacheDir()返回缓存文件的路径,而getFilesDir()返回在应用程序的内部存储中创建和存储的文件的路径。内部存储是持久化的:系统无法删除它。
https://stackoverflow.com/questions/13731203
复制相似问题