繁体   English   中英

从网络服务器到Android应用的数据

[英]Data to Android app from web server

我的应用程序从Web服务器提取数据。 将结果提供给ListView。

问题1:我应以哪种格式传输数据以最大程度地减少数据使用量?

问题2:我应该使用SqlLite数据库存储来自服务器的结果并将其提供给ListView,还是可以将几个(例如100个)值加载到ArrayList并将其设置为ListView的数据源?更好的性能 ?

问题1:我应以哪种格式传输数据以最大程度地减少数据使用量?

答案1:取决于您的服务器端数据格式。 如果是Xml格式,则必须
使用xml解析。 如果其为Json格式,则必须使用JSON解析。 我建议您使用JSOn解析。

问题2:我应该使用SqlLite数据库存储来自服务器的结果并将其提供给ListView,还是可以将几个(例如100个)值加载到ArrayList并将其设置为ListView的数据源?更好的性能 ?

答案2:您可以使用HashMap arraylist来存储数据并从中轻松检索。 但是,如果您之前说过一堆数据,那么您需要使用SQLITE数据库。 您必须在其中存储所有数据。 然后从数据库中检索。

资料格式

JavaScript对象表示法(JSON)被广泛用于通过网络传输数据

存储

这取决于您要执行的操作-如果数据本质上只是临时的,则您所建议的有效。 如果需要在应用程序启动时进行存储,则需要某种持久性。 数据库将是实现此目的的一种方法。

但是请记住,如果将数据加载代码放置在活动的onCreateonResume方法中(或活动生命周期的启动回调中的任何位置),则每次创建活动时都会加载该数据,即使用户只是翻转设备也是如此。 如果数据加载时间很长(即使只有几个字节,也总是通过网络加载),这可能会导致非常糟糕的用户体验。 解决此问题的一种方法是使用自定义加载程序 ,该加载程序可以与您的活动分开存在,并且可以缓存以前加载的数据。

从概念上讲,执行此操作将需要扩展Loader并覆盖onStartLoading方法以开始从网络加载数据。 你应该也覆盖onStopLoadingonCancelLoad ,让您的应用程式,透过即使它不再想连接不必要铲数据。

完成此操作后,您将提供LoaderCallbacks (如我给您的链接中所示),而不是在onCreateLoader回调中创建新的CursorLoader ,而是创建您自己的自定义加载程序类的实例。

问题1:您可以使用JSON或Xml进行数据传输,因为它们都是标准,但是JSON被广泛用于数据驱动的应用程序。

问题2:对于大型数据,您可以使用延迟加载技术直接将数据加载到列表中,或者这完全取决于个人,如果您存储在数据库中以在多个位置使用此数据以及进行数据存储,则取决于您

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM