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

一种方法是将排队系统更改为一系列 AsyncTask。我将不得不使用 onProgressUpdate() 显示进度。

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

问题是,我想结合 IntentService 和 AsyncTask 很好的功能:制作一个可以轻松处理 UI 事件的排队系统。有没有最好的方法来实现它?

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

最佳答案

ID

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

    这样你就可以有一个后台线程来处理你的工作队列,并将你喜欢的任何内容发布回 UI 线程,而无需处理广播

    关于android - 获取 IntentService 的进度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7690033/

    10-12 03:10