从GCM中删除消息


Remove message from GCM

我有一个应用程序,其中用户登录,从GCM获得注册id并将其发送到服务器。我的服务器将使用该注册id和GCM向用户发送通知。现在,我有以下情况:用户脱机,服务器给他发送通知但下次他登录时,他在不同的设备上获取新的注册id。是否有可能从服务器发送到旧设备的GCM中删除所有通知?

如果用户最终重新登录到第一个设备,或者将来有一个新用户登录到该设备,那么通常不需要(甚至不建议)频繁调用unregister()。

没有办法"收回"GCM服务器已经发送的消息。但是,您可以根据目标用户"筛选"传入消息。例如,如果用户X已登录,并且收到了一条发送给用户Y的消息,您可以在data条目中将用户Y指定为收件人。由于用户Y不是登录的用户,丢弃/忽略该消息。

您可能需要根据您的需要查看其他设置:time_to_livedelay_while_idle(此处描述)。

希望我理解你的担忧。