【问题标题】:Data persistence Alternative on Android [closed]Android上的数据持久性替代方案[关闭]
【发布时间】:2012-12-19 21:04:07
【问题描述】:

我想问一个关于 android 上的数据持久性的建议。事情是这样的:我有一个小的 rest 应用程序,它从 RESTful API 获取一个 json 数据,该数据用 jackson 反序列化为一个自定义对象,并且之后我使用这个对象来提供我的用户界面,问题是我希望这些数据是持久的或至少可以缓存的。

我看到有一些我可以使用的选项:ORM-lite 将对象保存在 sqlite DB 中或将 JSON 字符串保存到共享首选项或内部存储器中的文件中,我已经阅读了关于android 开发者网站关于这个主题。

我的对象的结构至少有 15 个字段,并且与另一个对象相关。

哪个是好的选择?

【问题讨论】:

    标签: android sqlite sharedpreferences ormlite data-persistence


    【解决方案1】:

    就个人而言,我建议将 JSON 字符串保存为应用程序数据区域中的文件,至少假设它没有太大以至于解析速度很慢。一般来说,解析 JSON 很快。

    但是,如果您需要存储此 JSON 对象的多个版本,那么 DB 可能是最好的选择。

    我不建议以这种方式使用 SharedPreferences。

    【讨论】:

      【解决方案2】:

      这实际上取决于其他一些变量。

      共享首选项非常适合可迭代的键/值对,但并不是真正为关系数据设计的。它们还旨在存储有限数量的数据,而不是任意大的数据集。例如,您可以将用户名保存在 SharedPref 中,但可能不会保存用户在每个级别中获得的每个分数的完整历史记录,或者每个级别的定义。

      SQLite 在关系数据方面要好得多,因为它是一个关系数据库,但如果您一次只想持有一个对象,它可能会有点过头了。通常你需要设置一个内容提供者,但我认为 ORMLite 会为你处理。

      所以:如果您在任何给定时间仅存储此 json 对象的一个​​或两个实例,可能只是为了方便而共享首选项。如果您要存储任意数量的它们以及与之相关的数据,SQLite 数据库。

      【讨论】:

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