如何在不更换先例的情况下使用GCM接收多个通知?

时间:2012-12-07 13:15:58

标签: c# android web-services push-notification google-cloud-messaging

我正在开展一个从GCM服务器接收通知的项目。

我从GCM服务器获得了注册ID,然后将其发送到我的服务器应用程序,并将其保存在数据库中。

我的设备收到消息,但当我尝试发送另一个消息时,替换先例。

我知道我们有两种类型的消息:

  • 可折叠“发送至同步”
  • 非可折叠

因此,如果不更改消息的名称,如何在不同时间发送两条消息?

  

更新1:

     

当我的设备离线时(例如激活机场模式),我试试   从我的应用服务器向Google发送2条消息   服务器(我读到Google存储了所有消息)。但是当我   取消激活此模式,我只收到最后发送的消息。

     

我对不同的消息使用不同的collapse_key,我收到了所有消息   他们(当然在设备在线时)。

     
    

有人知道我该如何解决这个问题?

  

2 个答案:

答案 0 :(得分:18)

折叠键仅与发送到GCM服务器但尚未到达目标设备的消息相关(如果多个此类消息具有相同的折叠键,则只有其中一个消息将被发送到设备当它变成在线时。)

在您的问题中,您描述了一种不同的情况 - 设备接收到第一条消息,然后设备接收到第二条消息并替换原始消息。这与GCM无关。它与应用程序处理收到的消息的方式有关。例如,如果显示接收消息的应用程序代码作为通知,则由您决定新消息是覆盖现有通知还是创建新通知。

答案 1 :(得分:7)

您需要确保每封邮件中“collapse_key”字段的值不同