【发布时间】:2011-11-13 16:12:42
【问题描述】:
我如何跟踪“N”个任务 - 特别是当所有 N 个任务都已完成以及是否有任何任务失败时。
例如,我有一个服务可以响应 5 个独特的 Intent,从远程服务器下载 5 个独特的数据。我还需要一次下载所有 5 条数据。与其复制代码来下载数据,不如启动 5 个 Intent 来下载所有数据,从而利用各个用例。
我遇到的问题是我需要知道所有 5 次下载尝试何时完成。我无法跟踪服务中进行了哪些下载,因为我使用的是 IntentService。 BroadcastReceivers 也存在同样的问题,因为它们仅在其 onReceive 方法期间存在。
我正在查看 sendOrderedBroadcast,但这需要每次下载尝试都有一个 BroadCastReceiver。我也有read 发送完成时会创建结果,但下载完成时不会创建结果?
"如果 resultReceiver 参数不为空,它指定一个 BroadcastReceiver,其 onReceive() 方法将在 发送已排序的广播 Intent 完成。”
也许我可以尝试使用 sendOrederedBroadcast 并在传递的 Intent 中打包某种计数器?
【问题讨论】:
标签: android asynchronous broadcastreceiver