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

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

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

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

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

  • 在申请死亡后保持活着的意向服务
  • Android IntentService不启动
  • Android中的背景图片下载需要帮助吗?
  • 只发送广播到特定的活动
  • Android Service扩展了ResultReceiver for IntentService,如何实现CREATOR?
  • 何时取消注册BroadcastReceiver? 在onPause(),onDestroy()或onStop()中?
  • android中的service,intentService有什么区别?
  • IntentService中的数据更改
  • 为什么大多数应用程序使用IntentService?

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

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

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

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