数据持久性替代Android

时间:2012-12-19 21:04:08

标签: android sqlite sharedpreferences ormlite data-persistence

我想问一个有关Android上数据持久性的建议..事情是这样的:我有一个小的休息应用程序,从RESTful API获取json数据,用杰克逊反序列化为自定义对象,然后我使用这个对象来提供我的ui,问题是我希望这些数据是持久的或至少可以缓存。

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

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

哪个是个不错的选择?

2 个答案:

答案 0 :(得分:1)

就个人而言,我建议将JSON字符串保存为应用程序数据区域中的文件,至少假设它不是那么大,以至于解析它很慢。通常,解析JSON非常快。

如果你需要存储这个JSON对象的多个版本,那么数据库可能就是这样。

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

答案 1 :(得分:0)

这实际上取决于其他几个变量。

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

SQLite在关系数据方面 更好,因为它是一个关系型数据库,但如果你只想一次保留一个对象,它可能会有点过分。通常,您需要设置内容提供程序,但我认为ORMLite会为您处理。

所以:如果你在任何给定的时间只存储了这个json对象的一个​​或两个实例,可能只是为了方便共享pref。如果你存储任意大量的数据,以及与之相关的数据,那就是SQLite数据库。