反复调用gcm.register(SENDER_ID)

时间:2014-06-17 12:15:53

标签: android google-cloud-messaging

我知道谷歌的新文档,它建议在启动时只调用一次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。

每次调用寄存器功能,它可以给出相同的重复值,然后比较并在必要时存储过程开始。

现在问题

  1. 每次都可以调用寄存器功能吗? (知道重复的结果)

  2. 通过反复调用注册功能,是否会刷新GCM服务器端的设备活动/状态?

  3. 为什么某些设备会出现"错误":" NotRegistered"错误(没有卸载应用程序),这个实现会有什么好处吗?
  4. 所有设备均为Android 4及更高版本。

    具有GCM经验的开发人员,请建议

0 个答案:

没有答案