Pra*_*ran 4 android push-notification google-cloud-messaging
我做了一个Android应用程序.我用GCM推送通知.我在用户登录时使用GCM注册设备.我使用外部MySql数据库来存储用户的注册ID.它工作正常.
但
当我执行以下步骤时:
仍然在我的手机中收到user1通知,这意味着在卸载应用程序时GCM 没有取消注册我的设备.
卸载应用程序时,我无法删除Mysql数据库中的行,因为在卸载应用程序删除行时,我不知道应用程序何时被卸载或用户可能没有互联网连接.
你能建议我如何解决这个问题吗?
我读过GCM在卸载后需要一些时间来取消注册设备.
当GCM取消注册设备时,如何删除mysql中的行?
确实,GCM在卸载后需要一些时间来取消注册设备.根据文档,GCM服务器仅在发送"反弹"消息后才会将注册ID标记为删除,因为已卸载该应用程序.
如果只是为了使情况更复杂,重新安装的应用程序可以接收相同的注册ID或不同的注册ID.
您可以做的一件事是在dataJSON对象中添加一个字段以指定目标用户是谁.这样,无论应用程序已被卸载然后重新安装的情况如何,用户将只接收针对他们的消息(例如,通过制作某种"检查登录用户"功能).
文档中的其他说明:
要确保消息发送给目标用户:
- 应用服务器可以维护当前用户和注册令牌之间的映射.
- 然后,客户端应用程序可以检查以确保它接收的消息与登录用户匹配.