android - 推送通知技术如何在 Android 上运行?

标签 android push-notification polling

Google 是如何实现他们的推送通知功能的?它是通过在后台运行的服务完成的轮询工作还是以其他方式工作?

最佳答案

从我在以色列举行的 Android 开发者大会上听到的消息:

只是有一个 TCP 套接字在 accept mode 中等待。在云端 Google 服务器上。 TCP 连接已由 Google Play 应用程序启动。这就是为什么必须在设备上安装 Google Play 才能制作 Google Cloud Messaging (GCM) (以前的 Android 云到设备消息传递服务 - C2DM)工作。

当这个 TCP 客户端套接字接收到一些消息时,该消息包含信息,例如它应该被寻址到的应用程序的包名称,当然还有数据本身。此数据被解析并打包到 intent广播并最终由应用程序接收。

即使设备的 radio 状态变为“空闲”模式,TCP 套接字仍保持打开状态。应用程序不必运行即可接收 Intent 。

更多信息请访问 http://developer.android.com/google/gcm/gcm.html

关于android - 推送通知技术如何在 Android 上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11508613/

相关文章:

Python:WAITING文件以 CPU 友好的方式达到大小限制

android - 返回 ~SkSpriteBlitter() 时我遇到了skia native 崩溃

android - gradle 在 android studio 中找不到本地 maven 依赖项

android - 让监听器知道何时将新项目添加到 DynamoDB

android - 接收消息收到来自 GCM 服务的确认

swift - 单击通知时更改选项卡栏

java - 无法在未调用 Looper.prepare() 的线程内创建处理程序?

android - 错误 : file not found: arch/arm/boot/compressed/piggy. lzo

c++ - 如何在 QT 中使用互斥锁定线程开始轮询?

python - ElasticSearch 更新不是即时的,你如何等待 ElasticSearch 完成更新它的索引?