getExternalCacheDir()创建的文件是自动删除还是app必须显式删除

时间:2015-07-21 11:42:07

标签: android caching external

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

我找不到关于WHEN平台删除文件的明确信息,尽管他们说它对JB_MR1及更高版本有用。如果您已经使用它,请告诉我。

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

1 个答案:

答案 0 :(得分:0)

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