gpt4 book ai didi

android - 注册 ID 更改后处理 GCM 中存储的消息

转载 作者:行者123 更新时间:2023-11-29 01:39:42 27 4
gpt4 key购买 nike

此处的案例是将 GCM 用于基于负载的推送通知。假设大约有 10 个奇怪的推送通知以不可折叠的方式发送到 GCM 服务器,以便所有这些通知都排队。用户尚未收到这些通知,因为用户尚未连接到互联网。

如果连接到互联网后用户在收到这些通知之前更新了应用程序,则该应用程序的注册 ID 将会更改。

想知道,如果在这种情况下,存储的通知是否仍会传送到设备,还是会被完全丢弃?

当注册 ID 更改时,我无法在文档的任何位置找到存储通知的处理方式。任何人都可以阐明这一点吗?

非常感谢。

最佳答案

我也没有看到关于这种不太可能发生的情况的文档。

之所以不太可能,是因为一旦您连接到互联网(为了更新应用程序),您很可能会在下载和安装更新之前获得存储的消息。

现在,假设您在安装更新之前没有得到它们。当应用程序正在更新时,有可能由于 GCM 中的旧错误,如果在升级过程中收到消息,应用程序将自动取消注册。这正是 GCM 文档建议每次更新应用程序时重新注册到 GCM 的原因。

万一发生此错误,您将丢失在 GCM 服务器中为您的设备存储的所有未送达消息,因为您的应用将在此设备上取消注册。

另一方面,如果未传递的消息在 GCM 服务器中延迟,直到您更新应用程序、启动更新后的应用程序并重新注册到 GCM 之后,存储的消息很可能会被传递,即使重新注册会生成一个新的注册 ID(请注意,注册 ID 不一定会更改),因为即使在分配了新的注册 ID 后,旧的注册 ID 仍然有效。

综上所述,您永远不应该依赖于始终传送的所有 GCM 消息。它永远无法保证。每当用户启动您的应用程序时,您应该将其与您的服务器同步(加载任何相关数据),因此任何未传送的 GCM 消息都将变得无关紧要。

关于android - 注册 ID 更改后处理 GCM 中存储的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25524793/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com