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

2024-01-14

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

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

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

我瞄准的是Android 1.6和更大。


请注意,您不应该使用 http://developer.android.com/reference/android/os/Environment.html#getExternalStorageDirectory%28%29返回的路径Environment.getExternalStorageDirectory()直接地:

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

使用返回的路径getFilesDir() http://developer.android.com/reference/android/content/ContextWrapper.html#getFilesDir%28%29将您的应用程序私有的文件存储在内部存储器, or getExternalFilesDir() http://developer.android.com/reference/android/content/ContextWrapper.html#getExternalFilesDir%28java.lang.String%29存储在外置储存.

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

这些文件将是设备运行时首先被删除的文件 存储空间不足。

使用方法:getCacheDir() http://developer.android.com/reference/android/content/ContextWrapper.html#getCacheDir%28%29 or getExternalCacheDir() http://developer.android.com/reference/android/content/ContextWrapper.html#getExternalCacheDir%28%29在外部文件系统上。阅读文档以了解它们之间的重要差异。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

getExternalStorageDirectory 不可用时的后备解决方案? 的相关文章

随机推荐