我目前使用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(使用前将#替换为@)