4

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

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

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

我的目标Android 1.6更大。

4

1 回答 1

3

请注意,您不应使用直接返回的路径Environment.getExternalStorageDirectory()

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

使用返回的路径getFilesDir()将您的应用程序私有的文件存储在内部存储上,或getExternalFilesDir()存储在外部存储上。

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

当设备存储空间不足时,这些文件将首先被删除。

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

如果要存储的数据量不大,最好使用内部存储。否则,您将不得不管理检测外部存储是否可用的复杂性,如果没有,则退回到内部存储。

于 2012-07-13T04:51:15.133 回答