我目前Environment.getExternalStorageDirectory()
用来获取一个可以临时存储一些数据的位置,然后在使用后被删除。此数据范围为 1-100MB。
这工作正常,但在某些情况下,外部存储的状态被删除或卸载等......我无法访问存储我的数据......
我的问题是,当此存储不可用时,什么可能是一个好的后备解决方案?
我的目标Android 1.6
更大。
我目前Environment.getExternalStorageDirectory()
用来获取一个可以临时存储一些数据的位置,然后在使用后被删除。此数据范围为 1-100MB。
这工作正常,但在某些情况下,外部存储的状态被删除或卸载等......我无法访问存储我的数据......
我的问题是,当此存储不可用时,什么可能是一个好的后备解决方案?
我的目标Android 1.6
更大。
请注意,您不应使用直接返回的路径Environment.getExternalStorageDirectory()
:
应用程序不应该直接使用这个顶级目录,以免污染用户的根命名空间。任何对应用程序私有的文件都应放置在由 . 返回的目录中
Context.getExternalFilesDir
,如果卸载应用程序,系统将负责删除该目录。其他共享文件应放在getExternalStoragePublicDirectory(String)
.
使用返回的路径getFilesDir()
将您的应用程序私有的文件存储在内部存储上,或getExternalFilesDir()
存储在外部存储上。
如果您临时存储数据,请考虑使用缓存目录。
当设备存储空间不足时,这些文件将首先被删除。
使用方法:getCacheDir()
或getExternalCacheDir()
在外部文件系统上。阅读文档以了解它们之间的重要区别。
如果要存储的数据量不大,最好使用内部存储。否则,您将不得不管理检测外部存储是否可用的复杂性,如果没有,则退回到内部存储。