Android SharedPreferences 或 SQLite 存储

标签 android database sqlite sharedpreferences

我有一个问题。在我的项目中,我有一些用户首选项存储在 SQL 数据库中。该表有大约 200 条记录,有 3 列。此记录不会更改,仅当用户更改并再次下载数据时。我想将它们放在 SharedPreferences 中,因为这样操作代码会更容易。现在的情况是有点困难,因为我使查询异步。现在,我的问题是:SharedPrefences 的记录数量是否太大?或者说把它们存放在那里应该没有问题?

最佳答案

共享偏好设置:

所有共享首选项都存储在/data/data/[package name]/shared_prefs/[app name].xml 中,所以我认为基于结构没有限制。

共享首选项只不过是一个包含两列的简单表格。 (键,值)。

根据本文档,共享首选项大小 8192 个字符: http://developer.android.com/reference/java/util/prefs/Preferences.html#MAX_VALUE_LENGTH

优点:

  • 快速检索
  • 易于理解和编程

缺点

  • 如果我们存储大量值,维护 key 就会很困难。
  • 用户可以随时清除此设置。

数据库:

当我们要存储大量具有复杂结构的值时,我们只剩下一个很好的解决方案,即。数据库。

优点

  • 我们可以维护数据结构。
  • Android 有漂亮且简单的 API 来处理 sqlite 操作。

缺点

与共享首选项相比,操作有点慢。 用户可以随时清除它。

Reference

关于Android SharedPreferences 或 SQLite 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16605900/

相关文章:

java - 如何以编程方式在中心裁剪特定尺寸的位图

mongodb - 有没有多核利用NoSQL的系统?

c# - 如何使用 SQL Server 数据库部署 Windows 应用程序?

php - 使用 PHP 将表单中的数据插入 SQLite3 数据库

ios - iPhone 4 应用程序使用 sqlite 数据库

android - 插入 sqlite 数据库时出错

java - 无法恢复嵌套 fragment 状态

android - 有人成功地在 Android 的 React Native 中使用本地镜像吗?

PHP 到 MySql - 只会写入一列,而不是多列

java - 尝试从从 sqlite 中提取的对象列表中调用方法时的空对象引用