来自 GCM文档:
当应用程序更新时,它应该使其现有的注册 ID 无效,因为不能保证它可以与新版本一起使用。因为更新应用程序时没有调用生命周期方法,所以实现此验证的最佳方法是在存储注册 ID 时存储当前应用程序版本。然后在启动应用程序时,将存储的值与当前应用程序版本进行比较。如果它们不匹配,则使存储的数据无效并重新开始注册过程。
当文档声明“不能保证与新版本一起使用”时,这是 GCM 的限制,还是他们在推测我的应用程序的行为在不同版本之间的潜在变化?
从应用程序方面,我或多或少可以保证后续版本将在 GCM 和我编写的任何特定于应用程序的消息格式方面正常运行。我还需要重新注册吗?
如果是这样,我应该使用哪个来检测“新版本”:版本代码或版本名称?我的理解是这些是“自由形式”,应用程序开发人员将它们设置为他选择的任何值。那么,如果我将应用更新放入商店但不更改 versionName 或 versionCode 怎么办?我需要重新注册 GCM 吗?
似乎 GCM真正想要的是应用程序在每次首次启动新安装时重新注册(并且每次连续启动直到注册完成),无论 versionName 和 versionCode 中的值如何。这是一个准确的说法吗?