首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android实时查询Web服务

Android实时查询Web服务
EN

Stack Overflow用户
提问于 2011-06-24 00:59:03
回答 2查看 974关注 0票数 0

我已经编写了一个应用程序来查询我编写的web服务(它返回JSON数据)。我的应用程序当前使用AsyncTask处理web服务调用,并使用接收到的数据更新TableLayout。我希望我的应用程序定期(大约每秒)调用此web服务,并在数据库中显示数据,因为它正在不断更新。我怎样才能在没有UI线程阻塞的情况下这样做呢?

目前的工作方式是用户按下"go“按钮,当请求处理时,AsyncTask会显示一个”work“对话框。我希望他们按下go按钮一次,并在布局中刷新数据。我不确定最好的架构方式是什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-28 02:51:48

我不建议您每秒创建一个新的AsyncTask,因为这将导致大量的对象创建和相应的内存收集。

相反,您可以创建一个AsyncTask,在每个请求从web服务返回后更新一些内部数据结构,然后调用publishProgress(),等待适当的时间,然后向web服务发出新的请求。在onPublishProgress()中,无论使用什么内部结构,代码都应该从请求中获取新信息(不要忘记在这里使用锁来同步访问),并刷新UI。

您还希望AsyncTask有一个方法或变量,Activity可以调用这些方法或变量来告诉它跳出循环。

票数 1
EN

Stack Overflow用户

发布于 2011-06-24 02:04:47

您可以使用每秒后都会发起新的AsyncTask请求的Handler

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6457847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档