Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 重复调用gcm.register(发送方ID)_Android_Google Cloud Messaging - Fatal编程技术网

Android 重复调用gcm.register(发送方ID)

Android 重复调用gcm.register(发送方ID),android,google-cloud-messaging,Android,Google Cloud Messaging,我知道谷歌新文档,它建议在启动时只调用一次GCM register并存储ID。在play store上发布应用程序后,一些ID出现错误:未注册,应用程序版本未升级,用户停止接收通知 在阅读在线解决方案时,一些人建议再次/反复调用register函数 所以我实现了这个代码 regid=""; while (regid.isEmpty()) { regid = gcm.register(SENDER_ID); } String storeid = getRegistrationId(context

我知道谷歌新文档,它建议在启动时只调用一次GCM register并存储ID。在play store上发布应用程序后,一些ID出现错误:未注册,应用程序版本未升级,用户停止接收通知

在阅读在线解决方案时,一些人建议再次/反复调用register函数

所以我实现了这个代码

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

每次调用寄存器函数时,它可能会给出相同的重复值,然后进行比较,必要时开始存储过程

现在问题来了

每次调用register函数可以吗?知道重复的结果

通过反复调用register函数,它是否会刷新GCM服务器端的设备活动/状态

为什么有些设备出现错误:NotRegistered errors没有卸载应用程序,此实现是否有任何好处? 所有设备都是安卓4及以上版本


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

未注册的设备是否会收到通知?当然,在他们开始获取NotRegistered错误之前。你应该调查为什么你会收到这些未注册的错误,而不是编码解决方案。是的,他们过去常常收到通知,最近一个接一个地收到错误,未注册的数量增长缓慢