首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取IntentService的进度

获取IntentService的进度
EN

Stack Overflow用户
提问于 2011-10-07 16:16:12
回答 2查看 1.6K关注 0票数 4

我正在开发一个需要大量API调用的Android应用程序。我构建了一个基于IntentService实现排队系统的系统。问题是,在运行ProgressBar时,我想显示一个准确的IntentService更新。

一种方法是将排队系统更改为。我必须展示使用onProgressUpdate()所取得的进展。

另一种方法是调整IntentService并从后台线程获取进度。

问题是,我想将IntentService和AsyncTask的优点结合起来:创建一个易于处理UI事件的排队系统。有什么最好的方法来实现这一点吗?

编辑:,我最终使用的是AsyncTasks而不是IntentServices。但是,如果有人有一个很好的模式来分享从IntentService更新进度,可以随意添加您的评论。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-20 20:26:24

我会

  • 启动一个HandlerThread,一个handler
  • 获取主UI线程的处理程序
  • post工作到后台线程,使用该线程的处理程序
  • 将进度更新和结果发送给UI,使用UI线程的处理程序

这样,您就可以有一个单独的后台线程来处理工作队列,并在不处理广播的情况下将任何您喜欢的内容发布回UI线程。

票数 2
EN

Stack Overflow用户

发布于 2012-08-12 23:25:43

对我来说,作为一个IntentService,我在考虑广播什么时候开始进度条,什么时候结束进度栏。通常,您可以使用标准的“接收回来”作为结束部分。您可以用不同的字符串注册不同的意图广播。

棘手的部分是想出一种方法让调用找到是否取消了“进度”栏,我还在考虑拥有一个状态表,以便在其余调用进行时得到更新。该表将有一个调用的id,并且在它完成后,条目将被删除。该表将跟踪线程是否应该处于活动状态。

因此,REST线程将在每次发送之前检查表,如果检测到取消,则停止所有/忽略发回数据。

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

https://stackoverflow.com/questions/7690033

复制
相关文章

相似问题

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