存储临时文件时如何在getExternalCacheDir和getExternalFilesDir(null)之间进行选择

时间:2018-06-12 05:55:51

标签: android

我有一个用例,我需要使用MediaStore.ACTION_IMAGE_CAPTURE意图捕获图像文件,将其存储在临时位置并通过网络传输。

由于其“临时”特征,我想知道将图像文件存储在getExternalCacheDir中更合适。

但是,我有一个问题,系统可能会在操作过程中自动执行“清理”缓存文件夹。

如果这种担忧是有效问题,我是否更适合将图像文件存储在getExternalFilesDir中?

1 个答案:

答案 0 :(得分:1)

基于getExternalCacheDir的文档:

  
      
  • 平台并不总是监视共享存储中的可用空间,因此可能无法自动删除这些文件。应用   应始终管理此位置使用的最大空间。
  •   
  • 目前平台删除此处文件的唯一时间是在Build.VERSION_CODES.JELLY_BEAN_MR1或更高版本上运行时   Environment.isExternalStorageEmulated(File)返回true。
  •   

鉴于文件的性质是临时性的,除非您的存储模拟,否则使用getExternalCacheDir时应该非常安全。

如果您不想确保即使在模拟存储上也需要这些文件,请继续getExternalFilesDir