【问题标题】:Shared Preferences vs SQLite for caching JSON用于缓存 JSON 的共享首选项与 SQLite
【发布时间】:2015-07-17 05:36:03
【问题描述】:

在 Android 应用程序生命周期之间持久保存 JSON 的最佳方式是什么?现在我正在使用一个休息服务来返回一个 JSON。我将此 JSON 用作要加载到大量 web 视图中的 javascript 图表的数据提供者。我不想不断地访问服务器来请求 JSON,而是想缓存它并在需要时检索它,允许用户手动更新/刷新数据。

我应该使用 Shared Preferences 还是应该坚持使用 SQLite 表?我主要关心的是即使在应用程序被杀死/重新启动后仍然能够检索存储的数据。我也有大量的 JSON,想知道哪个是最有效的。

【问题讨论】:

  • 小数据可以使用 SharedPreferences,大数据可以使用 Sqlite

标签: javascript android json sqlite


【解决方案1】:

这取决于你的数据有多大

SharedPreferences

将私有原始数据存储在键值对中。

如果您只想存储 2-3 个变量和整数,boolean sharedPreferences 可以解决问题。

Sqlite

将结构化数据存储在私有数据库中。

如果您的数据包含大量项目,例如您正在填充 ListView,则最好实施 SQLite,因为数据以更有序的方式存储,您可以将 id 设置为这些数据(例如,您可以将 id 设置为今天的日期并检查如果当前日期大于 id 那么你可能需要刷新)还有一些强大的类可以帮助你喜欢 CursorAdapter 和 Cursor

【讨论】:

    【解决方案2】:

    如果你想让事情变得简单,那么你应该将 JSON 响应字符串保存到 SharedPrefence 将 Key 关联到 JSON。

    它很容易从 SharedPrefence 中检索。 您可以简单地检查 ShredPrefence 中是否存在特定的 KEY, 如果没有,那么您可以访问服务器,否则从 ShredPrefence 获取 JSON 响应。

    当用户手动更新时,更新共享首选项中的 JSON 响应。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多