我正在开展一个从GCM服务器接收通知的项目。
我从GCM服务器获得了注册ID,然后将其发送到我的服务器应用程序,并将其保存在数据库中。
我的设备收到消息,但当我尝试发送另一个消息时,替换先例。
我知道我们有两种类型的消息:
因此,如果不更改消息的名称,如何在不同时间发送两条消息?
更新1:
当我的设备离线时(例如激活机场模式),我试试 从我的应用服务器向Google发送2条消息 服务器(我读到Google存储了所有消息)。但是当我 取消激活此模式,我只收到最后发送的消息。
我对不同的消息使用不同的collapse_key,我收到了所有消息 他们(当然在设备在线时)。
有人知道我该如何解决这个问题?
答案 0 :(得分:18)
折叠键仅与发送到GCM服务器但尚未到达目标设备的消息相关(如果多个此类消息具有相同的折叠键,则只有其中一个消息将被发送到设备当它变成在线时。)
在您的问题中,您描述了一种不同的情况 - 设备接收到第一条消息,然后设备接收到第二条消息并替换原始消息。这与GCM无关。它与应用程序处理收到的消息的方式有关。例如,如果显示接收消息的应用程序代码作为通知,则由您决定新消息是覆盖现有通知还是创建新通知。
答案 1 :(得分:7)
您需要确保每封邮件中“collapse_key”字段的值不同