一致地运行两个或更多服务的最佳做法是什么?

时间:2012-07-12 12:12:04

标签: android service

一致地运行两项或多项服务的最佳做法是什么?

例如: REST 服务会检索一些数据,如果有一些新内容下载服务应该运行?

我在第一次完成后向接收器发送广播,接收器从意图中抓取数据并将其发送到第二次服务。

1 个答案:

答案 0 :(得分:2)

您也可以从Intent直接向RestService发送DownloadService,而不必将BroadcastReceiver放在其中DownloadService之间。

我认为IntentService对您的API Level 9来说是更好的方式。

  

IntentService是服务的基类,可根据需要处理异步请求(表示为Intents)。客户端通过startService(Intent)调用发送请求;服务根据需要启动,使用工作线程依次处理每个Intent,并在工作失败时自行停止。

     

这个"工作队列处理器"模式通常用于从应用程序的主线程卸载任务。存在IntentService类以简化此模式并处理机制。要使用它,请扩展IntentService并实现onHandleIntent(Intent)。 IntentService将接收Intents,启动工作线程,并根据需要停止服务。

     

所有请求都在一个工作线程上处理 - 它们可能需要多长时间(并且不会阻止应用程序的主循环),但一次只能处理一个请求。

编辑:忘了提及,因为{{1}} Android有一个DownloadManager类来处理您的下载,在失败,连接更改等后重试它们。