什么时候使用Android GCM是有意义的?

时间:2013-06-16 14:29:08

标签: android google-cloud-messaging

什么时候使用android GCM会有用吗?

据我所知,这是推动而不是拉动机制。

目前我正在使用通常的http客户端发送帖子并从我的服务器获取json响应数据。不确定使用GCM是否有意义,因为已经看到ppl用它来更新android等上的sqlite db。

2 个答案:

答案 0 :(得分:2)

  

据我所知,这是推动而不是拉动机制。

最新的更新支持推送和拉取,但它主要被认为是推送(服务器 - >设备,通过谷歌的服务器)。

  

目前我正在使用通常的http客户端发送帖子并从我的服务器获取json响应数据。

当设备知道启动该工作时,该工作正常。

GCM推送事件是围绕服务器知道需要发生某些事情但设备没有发生的情况而设计的。

例如,取Remember the Milk(RTM)。这是一个“Web 2.0”待办事项列表服务。您可以从Web浏览器和移动应用程序访问它。当您在Web浏览器中进行更改时,如果您安装了Android应用并绑定到同一RTM帐户,则RTM服务器将使用GCM告知设备已更改为待办事项。可以想象,RTM可以压低4K GCM有效载荷中的整个信息,或者它可能只是一个触发器,使RTM Android应用程序使用普通的Web服务调用来下拉数据。

这比轮询架构更有效(例如,RTM每五分钟检查一次更新),因为我们只有在做真正的工作时才会进行重要的网络I / O.它(通常)更快,因为GCM消息(通常)在实际(非)时间内传递,因此Android应用程序可以比使用轮询架构更快地同步。

答案 1 :(得分:1)

如果您描述您的代码/应用程序在需要服务器响应时启动请求。在这种情况下,这是正确的方法。

如果服务器发生需要某种通信初始化的事件,则推送消息(在Android:GCM的情况下)是正确的方法。对于服务器始终代表用户/客户端在线执行的直接消息传递或电子邮件系统 - 它可以发送推送消息以启动所需的通信(传递消息或启动电子邮件获取)。