Google的Implementing GCM Client文档演示了一种架构模式,其中WakefulBroadcastReceiver启动IntentService,后者实际上处理传入的云消息,并在完成后通知接收方。在示例中,在我正在编写的应用程序中,唯一真正要做的工作是创建和发布系统Notification。
创建和发布通知是短期任务,不需要异步调用/响应。现在,我可以理解服务在收到云消息时需要处理一些长期运行的任务(实际上,Google的示例代码模拟了这样的任务)。但是,假设收到Cloud Message时唯一要做的就是发布通知,那么IntentService中介真的是必要的吗?如果我只是使用简单的BroadcastReceiver来捕获云消息,解析一些JSON并发送通知,那么我是否会忽略一些陷阱?
答案 0 :(得分:2)
但是,假设收到Cloud Message时唯一要做的就是发布通知,那么IntentService中介是否真的有必要?
只要您不需要执行任何磁盘I / O或网络I / O,只需普通的BroadcastReceiver
即可。您的JSON很短,因此解析工作应该很快,并且发布Notification
也很快。