【问题标题】:Does files created by getExternalCacheDir() get deleted automatically or app has to delete explicitly由 getExternalCacheDir() 创建的文件是否会自动删除或应用程序必须显式删除
【发布时间】:2015-07-21 20:04:35
【问题描述】:

我想将图像存储在文件系统中,一旦完成,我想将其删除。我使用了 getExternalStorageDirectory() 并在完成后删除了其中创建的文件。我看到 getExternalCacheDir() 可用,并且其中的文件应该按照名称(缓存)自动删除。 在文档 (http://developer.android.com/reference/android/content/Context.html#getExternalCacheDir()) 中说:
“平台并不总是监控外部存储中的可用空间,因此可能不会自动删除这些文件。目前,平台唯一会删除此处的文件是在 JELLY_BEAN_MR1 或更高版本上运行并且 Environment.isExternalStorageEmulated() 返回 true . 请注意,无论如何,您都应该管理将用于这些的最大空间,就像使用 getCacheDir() 一样。"

尽管他们说 JB_MR1 及更高版本的文件,但我无法找到有关 WHEN 平台 deltes 文件的明确信息。如果您已经使用过,请告诉我。

我试图找到与 getExternalCacheDir() 相关的所有链接,但没有找到答案。如果有这样的帖子,请将我重定向到该帖子。谢谢!

【问题讨论】:

  • 我认为当您点击设置中的“清除缓存”按钮时缓存将被删除。
  • 我认为是的。但是,如果我们知道它何时以编程方式发生,那么我们可以决定是否使用。无论如何,我搬回 getExternalStorageDir() 然后自己删除。

标签: android caching external


【解决方案1】:

getExternalCacheDir() 返回一个 java.io.File 对象,表示应用程序在主外部存储上的缓存。此缓存对用户不可见,并在卸载应用程序时被删除。 Android SDK 中没有删除缓存目录中文件的机制,因此您需要管理缓存以将其保持在合理的最大大小。从 Android 4.4 开始,应用程序不需要访问自己的缓存的权限,但对于旧版本,您的应用程序需要 READ_EXTERNAL_STORAGE 或 WRITE_EXTERNAL_STORAGE 权限。

【讨论】:

    猜你喜欢
    • 2014-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多