是否有任何理由继续使用IntentService来处理GCM消息?

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

当试图找出是否有任何充分的理由继续使用IntentService ,我遇到了这个引用 :

WakefulBroadcastReceiver处理GCM消息的服务(通常是IntentService),同时确保设备不会在进程中回到睡眠状态。 包括一个IntentService是可选的 – 你可以select在一个普通的BroadcastReceiver中处理你的消息, 但实际上,大多数应用程序将使用一个IntentService

为什么大多数应用程序使用IntentService ? 在BroadcastReceiver直接处理GCM消息的情况是否有效?

Solutions Collecting From Web of "是否有任何理由继续使用IntentService来处理GCM消息?"

为什么大多数应用程序使用IntentService?

因为响应这个消息的大部分可能会花费1-2ms以上,这意味着你想从主应用程序线程中获得这个工作。 为了响应广播,这样做的一个常见模式是将工作委托给IntentService

所以,如果您的工作是回应GCM讯息,包括:

  • 磁盘I / O
  • 进一步的networkingI / O(例如,从您的Web服务检索额外的数据)
  • 大量的计算(例如image processing)

您可能会想要使用IntentService来执行该工作。