我需要帮助设计针对特定于长时间运行的后台任务的问题的解决方案。
背景:
- 我有一个带有显示文件列表的活动的应用程序。
- 每个文件都可以下载。每个下载的文件都可以有更新。
- 更新(如果有)将作为带有立即更新按钮的通知触发。该应用程序有一个显示每个文件更新的活动。
- 在任一位置单击立即更新会触发后台作业下载文件并在两个位置更新 UI 中的进度(取决于用户所在的位置)。
- 用户可以同时更新/下载最多 4 个文件。
设计:
- 我有一个带有 WakefulBroadcastReceiver 的 GCM 设置,它启动一个 IntentService 来通知任何更新。
- 更新/下载是一个 Runnable - DownloadRunnable.java
- 一个单例类,MyDownloadManager 有一个静态方法 startDownload(),它使用特定的 url 启动 DownloadRunnable。
问题:
- 下载更新时如何更新通知和活动的进度?
- 如何扩展设计以运行并发下载并更新相应项目的进度?