谷歌是如何实现他们的推送通知功能的?它是通过在后台运行的服务完成的轮询工作还是以不同的方式工作?
从我在以色列举行的 Android 开发者大会上听到的消息:
在云 Google 服务器上只有一个 TCP 套接字以接受模式等待。TCP 连接已由 Google Play 应用程序启动。这就是为什么必须在设备上安装 Google Play 才能使Google Cloud Messaging (GCM)(以前的 Android Cloud to Device Messaging Service - C2DM)工作。
当这个 TCP 客户端套接字接收到一些消息时,该消息包含信息,例如它应该被寻址到的应用程序的包名称,当然还有数据本身。这些数据被解析并打包到一个意图中,该意图被广播并最终由应用程序接收。
即使设备的无线电状态变为“空闲”模式,TCP 套接字仍保持打开状态。应用程序不必运行即可接收意图。
更多信息请访问http://developer.android.com/google/gcm/gcm.html