我正在构建一个Android应用程序,并设法在我的应用程序中设置Firebase实例消息传递。然而,我意识到,当我再次打开我的应用程序后,5-6天没有打开它,令牌更新/刷新。我确信我没有做以下任何事情(基于FCM文档):
*应用程序是在一个新设备上恢复的。 *用户卸载/重新安装应用程序。 *用户清除应用程序数据。
但我不知道这到底是怎么做到的(通过应用程序本身):
*应用程序删除实例ID。
不管怎么说,新的注册令牌是只有在应用程序重新启动后才被刷新(也就是像我的情况一样在5-6天后启动)吗?
在应用程序重新启动之前(即触发onTokenRefresh() )之前,旧令牌在接收推送通知/实例云消息传递中仍然可行吗?
或者是onTokenRefresh()甚至可以在后台默默运行?
所以,我想知道那些专家聊天应用是如何满足这种情况的?谢谢。
发布于 2017-03-15 02:51:00
AFAIK,应用程序不会删除它自己的实例ID,除非您显式地调用它(请参阅我的答案这里)。
如果触发了onTokenRefresh(),则开发人员有责任调用getToken()检索新的有效注册令牌,将其发送到他们的App并删除旧的注册令牌。如文档所述
获得令牌后,可以将其发送到应用服务器,并使用首选的方法存储它。
无论应用程序在前台还是后台,都可以触发onTokenRefresh() (见我的答案这里)。这个@DiegoGiorgini的回答很好地解释了它的工作原理。
https://stackoverflow.com/questions/42799374
复制相似问题