FirebaseInstanceIdService onTokenRefresh()仅在应用程序运行时调用吗?

ros*_*sco 4 android firebase firebase-cloud-messaging

就像标题所暗示的那样,如果我有一个注册了FCM通知的Android应用程序并且应用程序处于后台或者暂时没有启动并且令牌发生变化,那么何时被onTokenRefresh()调用?

它是否会唤醒应用程序,onTokenRefresh()或者只是在下次应用程序启动时调用它?

谢谢

AL.*_*AL. 5

onTokenRefresh()触发事件已包含在FirebaseInstanceIdService文档中:

当系统确定需要刷新令牌时调用.应用程序应调用getToken()并将令牌发送到所有应用程序服务器.

这不会被频繁调用,需要进行密钥轮换并处理实例ID更改,原因如下:

  • 应用程序删除实例ID
  • 应用程序在新设备上恢复
  • 用户卸载/重新安装应用程序
  • 用户清除应用数据

系统将限制所有设备上的刷新事件,以避免使用令牌更新使应用程序服务器过载.

同样如上所述,FirebaseInstanceIdService类扩展了Service类,无论应用程序是在前台还是后台,都可以运行.