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