我正在开发一个需要大量API调用的Android应用程序。我构建了一个基于IntentService实现排队系统的系统。问题是,在运行ProgressBar时,我想显示一个准确的IntentService更新。
一种方法是将排队系统更改为。我必须展示使用onProgressUpdate()所取得的进展。
另一种方法是调整IntentService并从后台线程获取进度。
问题是,我想将IntentService和AsyncTask的优点结合起来:创建一个易于处理UI事件的排队系统。有什么最好的方法来实现这一点吗?
编辑:,我最终使用的是AsyncTasks而不是IntentServices。但是,如果有人有一个很好的模式来分享从IntentService更新进度,可以随意添加您的评论。
发布于 2011-11-20 20:26:24
我会
这样,您就可以有一个单独的后台线程来处理工作队列,并在不处理广播的情况下将任何您喜欢的内容发布回UI线程。
发布于 2012-08-12 23:25:43
对我来说,作为一个IntentService,我在考虑广播什么时候开始进度条,什么时候结束进度栏。通常,您可以使用标准的“接收回来”作为结束部分。您可以用不同的字符串注册不同的意图广播。
棘手的部分是想出一种方法让调用找到是否取消了“进度”栏,我还在考虑拥有一个状态表,以便在其余调用进行时得到更新。该表将有一个调用的id,并且在它完成后,条目将被删除。该表将跟踪线程是否应该处于活动状态。
因此,REST线程将在每次发送之前检查表,如果检测到取消,则停止所有/忽略发回数据。
https://stackoverflow.com/questions/7690033
复制相似问题