0

我正在开发一个基于 HTML5 的 webapp,并计划使用 phonegap 或 sencha 将其发布为本机应用程序。

我需要一些东西来存储我的本地应用程序数据 ~2MB(可以是名称值对),但存储需要是持久的,并且不应在手机重启或重置为出厂默认值时删除。

Andriod 中 SharedPreferences 和 localstorage 的范围是什么,用户可以清除它们,或者它们的生命周期是什么,以及它们在什么条件下被清除。

我的另一个问题是关于sqlite,如果用户恢复手机并且用户可以清除sqlite db,andriod backup mgr 是否会备份并恢复它

4

1 回答 1

0

SharedPreferences 和 localStorage 只能从原始应用程序访问。localStorage 通常有 5MB 的限制,但并非在所有手机上都有,有些会允许更多。此外,localStorage 仅适用于 API 级别 7。

当用户进入应用程序设置并手动清除数据时,SharedPreferences 和 localStorage 都会被清除。

如果您的 API 级别为 8 或更高,您可以使用外部文件目录,该目录也是应用程序独有的。用户清除此目录中数据的唯一方法是卸载应用程序。您可以像这样获得它的路径:

context.getExternalFilesDir(null).getAbsolutePath();

如果您的 API 级别 < 8,那么您仍然可以使用标准 sdCard 位置进行存储,但在用户卸载应用程序后文件将在那里。

因此,如果 API 最低级别 < 8,最好将 SQLite 数据库存储在外部文件目录或 sdCard 上。

于 2012-05-21T07:03:58.997 回答