我知道谷歌的新文档,它建议在启动时只调用一次GCM寄存器并存储ID。在Play商店发布应用程序后,一些ID正在运行"错误":" NotRegistered",应用程序版本未升级,用户停止收到通知。
在阅读这个问题的在线解决方案时,有人建议再次/重复调用寄存器功能。
所以我实现了这段代码
regid="";
while (regid.isEmpty())
{
regid = gcm.register(SENDER_ID);
}
String storeid = getRegistrationId(context);
if (!regid.equals(storeid))
{
//storing to server
sendRegistrationIdToBackend();
// storing in shared preference
storeRegistrationId(context, regid);
}
PS:这不是实际的完整代码,但这是给出基本的想法。如果应用版本发生变化,getRegistrationId会给出Null。
每次调用寄存器功能,它可以给出相同的重复值,然后比较并在必要时存储过程开始。
现在问题
每次都可以调用寄存器功能吗? (知道重复的结果)
通过反复调用注册功能,是否会刷新GCM服务器端的设备活动/状态?
所有设备均为Android 4及更高版本。
具有GCM经验的开发人员,请建议