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

Android 存储临时文件时,如何在getExternalCacheDir和getExternalFilesDir(null)之间进行选择,android,Android,我有一个用例,需要使用MediaStore.ACTION\u image\u captureintent捕获图像文件,将其存储在临时位置并通过网络传输 由于其“临时”特性,我想知道将图像文件存储在getExternalCacheDir中是否更合适 但是,我有一个担心,系统可能会自动在缓存文件夹中执行“清理”,在操作的中间。 如果此类问题是一个有效的问题,我是否更适合根据以下文档将图像文件存储在getExternalFilesDir?: 平台并不总是监视共享存储中的可用空间,因此可能不会自动删除

我有一个用例,需要使用
MediaStore.ACTION\u image\u capture
intent捕获图像文件,将其存储在临时位置并通过网络传输

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

但是,我有一个担心,系统可能会自动在缓存文件夹中执行“清理”,在操作的中间。


如果此类问题是一个有效的问题,我是否更适合根据以下文档将图像文件存储在
getExternalFilesDir

  • 平台并不总是监视共享存储中的可用空间,因此可能不会自动删除这些文件。应用程序 应始终管理此位置使用的最大空间
  • 目前平台删除此处文件的唯一时间是在Build.VERSION\u CODES.JELLY\u BEAN\u MR1或更高版本上运行时,以及 isExternalStorageEmulated(文件)返回true。
考虑到文件的临时性质,除非模拟存储,否则使用
getExternalCacheDir
应该是非常安全的


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

,我会选择
getExternalFilesDir