我有一个用例,我需要使用MediaStore.ACTION_IMAGE_CAPTURE
意图捕获图像文件,将其存储在临时位置并通过网络传输。
由于其“临时”特征,我想知道将图像文件存储在getExternalCacheDir
中更合适。
但是,我有一个问题,系统可能会在操作过程中自动执行“清理”缓存文件夹。
如果这种担忧是有效问题,我是否更适合将图像文件存储在getExternalFilesDir
中?
答案 0 :(得分:1)
基于getExternalCacheDir的文档:
- 平台并不总是监视共享存储中的可用空间,因此可能无法自动删除这些文件。应用 应始终管理此位置使用的最大空间。
- 目前平台删除此处文件的唯一时间是在Build.VERSION_CODES.JELLY_BEAN_MR1或更高版本上运行时 Environment.isExternalStorageEmulated(File)返回true。
鉴于文件的性质是临时性的,除非您的存储模拟,否则使用getExternalCacheDir
时应该非常安全。
如果您不想确保即使在模拟存储上也需要这些文件,请继续getExternalFilesDir