2015-09-19 90 views
0

我目前正在开发一个android应用程序,我正在处理返回json的php文件,然后json被解析并用于填充不同对象的数组列表。在Android中缓存

我想要做的是,我想缓存这些对象的情况下没有互联网,所以我可以重新加载它们,使应用程序可用脱机。

目前我有这2个解决方案:)

A请SQLite数据库和creare表具有相同的结构,我想缓存,然后重新装入启动时

B中的对象)将JSON字符串保存在共享的prefs中并在启动时解析它们。

当我遇到数据缓存时,我没有真正找到任何最佳实践或教程,所以我现在迷失了,我不知道该怎么做。所以如果你们可以请帮忙,我会很感激。

回答

0

您可能会发现下面的谈话有趣: https://www.youtube.com/watch?v=xHXn3Kg2IQE

正如你所看到的,很多脚手架进入ContentProvider的方法。对于一个非常简单的应用程序,仅仅将一些JSON缓存在SharedPreferences中是可以接受的。但是,随着您的应用程序变得越来越复杂,ContentProvider的优势将值得。

0

您可以使用文件而不是sqlite和共享首选项。

共享prefrences用于小数据。

当你需要对存储数据进行查询时,Sqlite正在使用它。

所以我认为最好是缓存文件,或者如果你正在使用改造或任何网络库的东西,你可以检查他们是否支持缓存和使用它。

0

绝对不是选项B.共享首选项不适合存储大量数据。它是XML,因此不能像Sqlite那样查询。检索单个项目的时间将随着存储的数据量线性增加。其次,JSON将具有特殊字符,这些字符需要被转义,这意味着存储容量将会增加更多。

但是有一个选项C.使用缓存文件。这种方法和其他商店选项在google developer guide中描述,这是必不可少的阅读。

总之:您的选择是解析JSON并将其存储在sqlite中或将json保存为缓存目录中的文件。