-3

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

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

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

哪个是一个不错的选择?

4

2 回答 2

1

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

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

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

于 2012-12-19T21:10:12.340 回答
0

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

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

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

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

于 2012-12-19T21:15:19.753 回答