我正在使用GCM开发Android应用程序。
我通过以下代码获得registrationId以发送推送通知,然后将其存储在SharedPreferences中。
registrationId = gcm.register("xxxxx");
当我的应用程序通过备份工具从一台设备传输到另一台设备时,我想每个存储在SharedPreferences中的数据都会被传输。
然后我认为上面的registrationId在新设备中没有活动。
是真的吗?
如果是,那么解决这个问题的最佳方法是什么?
我是否应该始终获取最新的registrationId,然后如果它与SharedPreferences中存储的不同,请重新保存新的?
答案 0 :(得分:1)
是的,这是真的。 "对于使用Google云消息传递(GCM)进行推送通知的应用,备份Google Cloud Messaging注册返回的注册令牌可能会导致已恢复应用的通知出现意外行为。这是因为当用户在新设备上安装您的应用时,应用必须向GCM API查询新的注册令牌。如果存在旧注册,因为系统已备份并恢复它,应用程序不会寻找新令牌。要防止出现此问题,请从备份文件集中排除注册令牌。" - 来自developers.android.com