在官方文档和这个问题中,谷歌建议重新注册 GCM,因为注册 ID 可能会改变。
一种可能发生的假设方式是,在更新期间,全部卸载然后安装。如果在该间隙期间收到 GCM 通知,则NotRegistered
可能会被退回,并且 GCM 注册 ID 可能会失效。
如果 Google Play 自动更新我的应用程序,那么处理这种情况并重新注册的最可靠方法是什么?在像 WhatsApp 这样的应用程序中,除非收到 GCM 通知,否则用户可能永远不会明确启动任何活动。所以用户基本上是“迷路”,直到他不小心偶然发现了一个活动。
在https://stackoverflow.com/a/14955308/111021中提到将包含“Canonical ID”,以便第 3 方服务器可以更新注册 ID。但是在文档中没有明确说明涵盖了这种情况(即 GCM 可能会在更新间隙期间将应用程序误认为“已卸载”,在这种情况下,在我看来,不会生成规范 ID,我会直接去NotRegistered
)。
像 WhatsApp 或其他消息应用程序这样的“高可用性”应用程序如何处理这个问题?