Firebase Cloud Messaging 关于重写 onNewToken 函数的问题

Firebase Cloud Messaging Questions About Overrided onNewToken Function

我开发了一个 Android 应用程序,当用户 运行 应用程序执行初始化过程时,用户会看到启动画面。这个初始化过程包括数据库解密等。我在数据库中保存FCM令牌和其他信息。

我写了 "MyFirebaseMessagingService",它扩展了 FirebaseMessagingService 并覆盖了 "onMessageReceived" 和 "onNewToken" 函数。我可以毫无问题地从 FCM 获得通知。我可以在应用程序 运行ning 期间获得新令牌,没有任何问题。

我的问题是:当我的应用程序未运行ning(未初始化)时,是否可以调用"onNewToken" 函数。这意味着我的应用程序没有执行初始化过程(做了很多事情)。

当 "onNewToken" 调用我的应用程序时,应将此令牌发送到多个服务器并更改加密数据库中的一些信息。

如果我的应用程序未初始化时可以调用"onNewToken"函数,我如何在"onNewToken"函数中知道我的应用程序是否已初始化。

我对这个话题有点困惑。这方面的最佳做法是什么?

onNewToken 方法位于 Service class 中,正是因为它可能会在应用未被积极使用时调用。您应该确保 onNewToken 中的代码不依赖于具有 运行.

的任何 activity 中的任何代码

典型的方法是将来自后台服务的令牌存储到您应用的服务器端 FCM 令牌列表中。

或者您可以将令牌传递给您的 activity,以便它可以在再次激活时提取它。不过,我建议不要将此用作传达令牌的主要方式,因为您可能会错过此处的令牌更新,因此在用户再次开始使用该应用程序之前无法向用户发送通知。