首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么要在安卓上使用getCacheDir()

为什么要在安卓上使用getCacheDir()
EN

Stack Overflow用户
提问于 2012-12-06 03:48:42
回答 2查看 29.1K关注 0票数 20

一旦系统内存不足,安卓可能会自动删除CacheDir中的文件。但是文档说,我们不应该依赖于系统清除这个缓存,因此编写额外的代码来轮询和删除。

如果是这样的话,为什么要选择getCacheDir()而不是getFilesDir()呢?两者都在内存中,而后者在清理什么以及何时清理方面为开发人员提供了更多的权力。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-06 07:49:47

一旦系统内存不足,

安卓可能会自动删除CacheDir中的文件。

对,是这样。第三方应用程序也可以从应用程序的缓存目录中删除文件。而且,正如zapl指出的那样,用户可以从设置中手动清除应用程序的缓存。

但是文档说我们不应该依赖于系统清除这个缓存,因此编写额外的代码来轮询和删除。

也是正确的。

如果是这样的话,为什么要选择getCacheDir()而不是getFileDir()呢?

因为操作系统、第三方应用程序和用户可以清除缓存。然而,仅仅因为这些东西可以清除缓存并不意味着它们会自动清除缓存,因此您需要不时地自己清理缓存。类似地,虽然你的母亲可以帮你清理房间,但如果你不想被扫把击中,那么你自己清理房间通常是个好主意。

和后者在清理什么以及何时清理方面为开发人员提供了更多的权力。

不,它不是。getCacheDir()返回一个File对象。getFilesDir()返回一个File对象。它们在“开发人员在清理什么和何时清理方面的权力”方面是等效的。

票数 48
EN

Stack Overflow用户

发布于 2012-12-06 03:54:53

getCacheDir()返回缓存文件的路径,而getFilesDir()返回在应用程序的内部存储中创建和存储的文件的路径。内部存储是持久化的:系统无法删除它。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13731203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档