[英]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)被广泛用于通过网络传输数据
这取决于您要执行的操作-如果数据本质上只是临时的,则您所建议的有效。 如果需要在应用程序启动时进行存储,则需要某种持久性。 数据库将是实现此目的的一种方法。
但是请记住,如果将数据加载代码放置在活动的onCreate
或onResume
方法中(或活动生命周期的启动回调中的任何位置),则每次创建活动时都会加载该数据,即使用户只是翻转设备也是如此。 如果数据加载时间很长(即使只有几个字节,也总是通过网络加载),这可能会导致非常糟糕的用户体验。 解决此问题的一种方法是使用自定义加载程序 ,该加载程序可以与您的活动分开存在,并且可以缓存以前加载的数据。
从概念上讲,执行此操作将需要扩展Loader
并覆盖onStartLoading
方法以开始从网络加载数据。 你应该也覆盖onStopLoading
和onCancelLoad
,让您的应用程式,透过即使它不再想连接不必要铲数据。
完成此操作后,您将提供LoaderCallbacks
(如我给您的链接中所示),而不是在onCreateLoader
回调中创建新的CursorLoader
,而是创建您自己的自定义加载程序类的实例。
问题1:您可以使用JSON或Xml进行数据传输,因为它们都是标准,但是JSON被广泛用于数据驱动的应用程序。
问题2:对于大型数据,您可以使用延迟加载技术直接将数据加载到列表中,或者这完全取决于个人,如果您存储在数据库中以在多个位置使用此数据以及进行数据存储,则取决于您
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.