2012-12-19 40 views
-3

我想问一个关于android上的数据持久性的建议..事情是这样的:我有一个小的休息应用程序,从一个RESTful API得到一个json数据,用杰克逊反序列化成一个自定义对象,之后,我用这个对象来喂我的用户界面,问题是我想这个数据是持久的或至少缓存。Android上的数据持久性替代

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

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

这将是一个不错的选择?

回答

0

这真的取决于其他一些变数。

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

SQLite是在关系型数据更好,因为它是一个关系型数据库,但如果您只想在同一时间举行对一个对象时,它可能是矫枉过正。通常你需要建立一个内容提供者,但我认为ORMLite会为你处理。

所以:如果你只存储此JSON对象的一个​​或两个实例在任何给定的时间,也许是共享的PREF只是为了方便。如果您存储了大量的SQLite数据库及其相关数据。

1

个人而言,我建议将JSON字符串保存为应用程序数据区中的文件,至少假设它不是很大,解析它很慢。一般来说,解析JSON是相当快的。

如果你需要存储这个JSON对象的多个版本,那么一个数据库可能会成为一种方式。

我不会推荐以这种方式使用SharedPreferences。