AndroID文档似乎非常强调使用内置的sqlite数据库并在内容提供商的帮助下访问它.但是,假设我的应用程序从REST API检索JsON格式的数据,使用此策略将需要以下内容:
Make http request --> Parse JsON --> Insert results into DB --> Call content provIDer --> Build model from cursor --> Bind to vIEw
这似乎是一种相对简单的做事的非常迂回的方式,但假设所有这些都发生在用户第一次打开应用程序时,结果将是很多并且在屏幕上出现任何有用的东西之前等待很多.
为了加快速度,我可能会先决定先创建我的模型,然后让缓存在一个单独的线程中进行,如下所示:
Make http request --> Build model from JsON --> Bind to vIEw -->(NEW THREAD) --> Insert results into DB
缓存数据后,下次用户打开应用程序时,将发生以下情况:
Call content provIDer --> Build model from cursor --> Bind to vIEw
但是当然这会增加更多的复杂性,例如迫使我维护代码以从两个来源构建模型:JsON和内容提供者返回的游标.
鉴于上述情况,我更倾向于取消sqlite / ContentProvIDer模型,而是执行以下 *** 作:
Make http request --> Build Model and Store JsON to file --> Bind to vIEw
但是这会大大减少样板,解析(大量可用于JsON解析的库)和整体复杂性,这也意味着我无法利用内容提供者和sqlite的功能.
所以问题是,我应该遵循哪种模式?是否存在一个比另一个好的情况?或者有没有更好的方法来处理我不知道的这个过程?
解决方法 您的问题的可能解决方案可能是 Google IO app中使用的解决方案.它们解析远程服务器上可用的JsON并直接显示该内容.为了避免空屏幕,他们使用引导程序Json文件,其中包含服务器上可用数据的图像.所有这些信息都可以在 here获得.更具体地说:总结bootstrap data
When the user runs the app for the first time,they expect to see data. However,if we relIEd only on the sync mechanism to bring data into the app,a first-time user would stare at a blank screen while waiting for a sync to happen,and this would be a bad user experIEnce.This is why IOSched ships with preloaded “bootstrap data”,which is essentially a preloaded offline snapshot of the JsON data. This data is parsed by the app and saved to the database on first execution.
You can find this file in res/raw/bootstrap.Json. It is simply a text file with a combined snapshot of the JsON files on the server.
以上是内存溢出为你收集整理的在Android中处理JSON数据的最佳策略是什么?全部内容,希望文章能够帮你解决在Android中处理JSON数据的最佳策略是什么?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)