Android 缓存JSON:HTTP缓存与数据库

Android 缓存JSON:HTTP缓存与数据库,android,json,sqlite,http,caching,Android,Json,Sqlite,Http,Caching,我正在开发一个从后端使用JSON提要的应用程序。默认情况下,每次用户在连接到Internet时访问应用程序时都会触发HTTP请求,如果没有网络,则应从缓存加载数据。我正在使用for networking,我看到了两种实现缓存的方法:要么使用配置为支持缓存的客户端,要么创建一个SQLite数据库来存储数据。第二种方法我很熟悉,因此看起来更可靠,但是这种方法有很多开销。我从来没有真正使用过HTTP缓存,我想知道仅仅依靠它来离线查看数据是否足够?您对SQLite的看法是正确的,将HTTP请求和对实际数

我正在开发一个从后端使用JSON提要的应用程序。默认情况下,每次用户在连接到Internet时访问应用程序时都会触发HTTP请求,如果没有网络,则应从缓存加载数据。我正在使用for networking,我看到了两种实现缓存的方法:要么使用配置为支持缓存的客户端,要么创建一个SQLite数据库来存储数据。第二种方法我很熟悉,因此看起来更可靠,但是这种方法有很多开销。我从来没有真正使用过HTTP缓存,我想知道仅仅依靠它来离线查看数据是否足够?

您对SQLite的看法是正确的,将HTTP请求和对实际数据的访问分开是更好的方法。因为它是feed,所以它是结构化数据。您可以采用以下方法:

  • Http请求->JSON->解析器->SQLite数据库插入
  • SQLite DB->List或任何其他适配器中的游标加载程序(或自定义任何加载程序)

  • 这样,即使没有互联网,您也可以随时访问数据。您可以随时触发HTTP轮询并更新数据库。更新/更改时,让内容数据的观察者触发加载程序并更新用户界面(如果当前向用户显示)。

    感谢您的回答,但是,我仍然不相信使用数据库比使用预配置的缓存进行HTTP调用更好。改型后,可以发出网络请求并以列表的形式获得响应,因此我不需要其他数据结构机制。这实际上取决于应用程序的逻辑。如果缓存JSON响应,则每次读取时都需要对其进行解析。如果使用全局HTTP缓存,可能最终会缓存不需要的响应。无论是从JSON还是从SQLite获得的,您所描述的Item类在任何情况下都是必需的。正如我所说的,这确实是基于应用程序如何工作的决定。所以我认为HTTP缓存解决方案的主要缺点是对缓存的控制较少,每次从缓存中提取JSON都需要解析。再次感谢,我需要考虑这些细节来选择最佳的解决方案。