如您所知,最近Google更改了他们的GCM文档,他们声称处理到达的GCM消息不再需要IntentService
。所有处理都可以在BroadcastReceiver
。
在尝试确定是否有充分理由继续使用IntentService
时,我遇到了quote:
WakefulBroadcastReceiver将处理GCM消息的工作传递给的服务(通常是IntentService),同时确保设备在此过程中不会重新进入休眠状态。 包含IntentService是可选的 - 您可以选择在常规的BroadcastReceiver中处理您的邮件,但实际上,大多数应用都会使用IntentService 。
为什么大多数应用会使用IntentService
?是否存在直接在BroadcastReceiver
中处理GCM消息的情况不起作用?
答案 0 :(得分:10)
为什么大多数应用会使用IntentService?
因为很可能无论你在响应消息时做什么都需要超过1-2毫秒,这意味着你想要从主应用程序线程中完成这项工作。响应广播的常见模式是将作品委托给IntentService
。
因此,如果您回应GCM消息的工作涉及:
您可能希望使用IntentService
来执行该工作。