onTokenRefresh未在签名的APK中调用,如果以前版本的应用程序安装没有执行FCM ​​

问题描述:

我在Android应用程序的第6版中实现了FCM。如果我的应用以前没有安装过,onTokenRefresh()正在调用。但是,当我的应用程序与以前的版本(没有FCM实现)已经安装,我用版本6更新,然后onTokenRefresh()没有被调用。onTokenRefresh未在签名的APK中调用,如果以前版本的应用程序安装没有执行FCM ​​

我是否需要从Play商店卸载以前的应用程序版本,然后安装新版本?

我认为这应该仍然是预期的行为。 onTokenRefresh()将被称为第一次该应用程序已安装。并非每次更新。因此,也许,你可以手动强制onTokenRefresh()喜欢在这个post提到:

如果你想手动强制onTokenRefresh(),您可以创建一个IntentService和删除令牌实例。然后,当您调用getToken时,将再次调用onTokenRefresh()方法。

+1

是的,我认为onTokenRefresh()时,应用程序的更新没有得到所谓:( –

+1

当你第一次开始使用FCM的应用程序令牌生成。如果以后开始你的服务,你可能已经错过了'onTokenRefresh ()'调用,但解决方案很简单:按照[检索当前注册标记]部分所述调用FirebaseInstanceID.getToken()(https://firebase.google.com/docs/cloud-messaging/android/客户端#检索当前注册令牌)并处理令牌,通常如何在'onTokenRefresh()'中执行它。如果令牌尚未生成,它将返回'null'。在这种情况下,一旦令牌准备就绪,你的'onTokenRefresh()'将被调用。 –

+0

感谢您的投入:) @FrankvanPuffelen –