有没有理由继续使用IntentService来处理GCM消息?

时间:2013-08-24 00:09:24

标签: android push-notification broadcastreceiver google-cloud-messaging intentservice

如您所知,最近Google更改了他们的GCM文档,他们声称处理到达的GCM消息不再需要IntentService。所有处理都可以在BroadcastReceiver

中完成

在尝试确定是否有充分理由继续使用IntentService时,我遇到了quote

  

WakefulBroadcastReceiver将处理GCM消息的工作传递给的服务(通常是IntentService),同时确保设备在此过程中不会重新进入休眠状态。 包含IntentService是可选的 - 您可以选择在常规的BroadcastReceiver中处理您的邮件,但实际上,大多数应用都会使用IntentService

为什么大多数应用会使用IntentService?是否存在直接在BroadcastReceiver中处理GCM消息的情况不起作用?

1 个答案:

答案 0 :(得分:10)

  

为什么大多数应用会使用IntentService?

因为很可能无论你在响应消息时做什么都需要超过1-2毫秒,这意味着你想要从主应用程序线程中完成这项工作。响应广播的常见模式是将作品委托给IntentService

因此,如果您回应GCM消息的工作涉及:

  • 磁盘I / O
  • 进一步的网络I / O(例如,从Web服务检索其他数据)
  • 实质计算(例如,图像处理)

您可能希望使用IntentService来执行该工作。