公式ドキュメントとこの質問では、登録 ID が変更される可能性があるため、Google は GCM を再登録することを推奨しています。
これが発生する仮説の 1 つとして、更新中にすべてがアンインストールされてからインストールされるというものがあります。そのギャップの間に GCM 通知を受信すると、NotRegistered
が返され、GCM 登録 ID が無効になる可能性があります。
Google Play が私のアプリを自動的に更新する場合、そのようなシナリオに対処して再登録するための最も確実な方法は何ですか? WhatsApp のようなアプリでは、GCM 通知を受信しない限り、ユーザーはアクティビティを明示的に開始することはできません。したがって、ユーザーは、誤ってアクティビティに出くわすまで、基本的に「迷子」になります。
https://stackoverflow.com/a/14955308/111021では、サードパーティのサーバーが登録 ID を更新できるように「正規 ID」が含まれることが記載されています。しかし、ドキュメントでは、この種のシナリオがカバーされていると明示的に述べられていません (つまり、GCM は、更新のギャップ中にアプリを「アンインストール」と間違える可能性があります。その場合、正規 ID が生成されないように思われるので、に直行NotRegistered
)。
WhatsApp や他のメッセージ アプリなどの「高可用性」アプリは、これにどのように対処しますか?