使用GCM传输实际数据还是仅触发事件?

时间:2014-04-14 21:20:57

标签: android synchronization google-cloud-messaging

在消息应用程序中,例如Android的Gmail,您可以手动刷新收件箱(“检查电子邮件”),也可以通过“推送通知”接收电子邮件

问题:
如果我仅将GCM用于触发下载数据的事件而不是发送数据,那效率是否太低?

方法#1

  1. 服务器发送GCM消息
  2. Android应用程序收到消息
  3. Android应用程序现在知道它应该检查消息,即:
     调用服务器的api:http://myserver/api/DownloadNewMessages
  4. 方法#2

    1. 服务器发送包含所有数据(“电子邮件”)
    2. 的GCM消息
    3. Android应用程序收到消息。
    4. 我在方法#2中看到的问题是同步和代码重复。

      同步:手动下载新数据时,需要验证(它真的是新数据吗?
      代码重复:将有两种接收数据的方式......(以及两种在服务器中发送的方式)

1 个答案:

答案 0 :(得分:1)

我使用了#1方法。它更有意义,更不容易出错。

推送消息应该很小。 它向接收客户端提示可能是检查新消息的好时机。我喜欢这样一个事实:当它没有准备好时,它不必强迫接收客户端获取数据。

此外,在将来更改数据格式时,从长远来看,它更容易维护,因为GCM消息仍然是相同的简单"嘿,可能有更新,请检查如果你想"。