getExternalStorageDirectory不可用时的后备解决方案?

时间:2012-07-13 03:22:31

标签: android

我目前使用Environment.getExternalStorageDirectory()获取一个临时存储某些数据的位置,然后在使用后被删除。此数据范围为1-100MB。

这样可以正常工作,但在某些情况下,外部存储的状态被删除或卸载等......我无法访问存储我的数据......

我的问题是,当这个存储不可用时,什么是一个好的后备解决方案?

我的定位是Android 1.6及更高。

1 个答案:

答案 0 :(得分:3)

请注意Environment.getExternalStorageDirectory()直接返回的路径为should not use

  

应用程序不应直接使用此顶级目录   以避免污染用户的根命名空间。任何文件   私有应用程序应放在由返回的目录中   Context.getExternalFilesDir,系统将负责   删除应用程序是否已卸载。其他共享文件应该   被放置在其中一个目录中   getExternalStoragePublicDirectory(String)

使用getFilesDir()返回的路径在内部存储空间上存储应用程序专用的文件,或getExternalFilesDir()存储在外部存储空间

如果您要临时存储数据,请考虑使用缓存目录。

  

这些文件将在设备运行时首先被删除   储存量低。

在外部文件系统上使用方法:getCacheDir()getExternalCacheDir()。阅读文档,了解它们之间的重要差异。

如果要存储的数据大小不大,最好使用内部存储。否则,您将不得不管理检测外部存储是否可用的复杂性,如果没有,则必须支持内部存储。