我正在开发一个HTML5基础webapp并计划使用phonegap或sencha将其发布为本机应用。
我需要一些东西来存储我的本地应用数据〜2MB(可以是名称对),但存储需要持续存在,不应在手机重启或重置为出厂默认设置时删除。
在andriod中,SharedPreferences和localstorage的范围是什么,用户可以清除它们或它们的生命周期以及它们在什么条件下被清除。
我的另一个问题是关于sqlite,并且andriod backup mgr会对其进行备份并在用户恢复手机时恢复它并且可以由用户清除sqlite db
答案 0 :(得分:0)
SharedPreferences和localStorage只能从原始应用程序访问。 localStorage通常有5MB的限制,但并非在所有手机上,有些会允许更多。此外,localStorage仅适用于API级别7。
当用户转到“应用程序”设置并手动清除数据时,将清除SharedPreferences和localStorage。
如果您的API级别为8或更高,则可以使用外部文件目录,该目录也是应用程序独有的。用户清除此目录中数据的唯一方法是卸载应用程序。您可以像这样获得它的路径:
context.getExternalFilesDir(null).getAbsolutePath();
如果您的API级别是< 8,然后你仍然可以使用标准的sdCard位置进行存储,但是在用户卸载应用程序后文件就会存在。
所以最好的办法是将SQLite数据库存储在外部文件目录或sdCard中,如果API最低级别为< 8。