就像标题所暗示的那样,如果我有一个注册了FCM通知的Android应用程序且该应用程序处于后台或暂时没有启动并且令牌发生变化,那么onTokenRefresh()
何时被调用?
它会唤醒应用程序以致电onTokenRefresh()
,还是会在下次应用程序启动时调用它?
由于
答案 0 :(得分:5)
触发onTokenRefresh()
的事件已包含在FirebaseInstanceIdService documentation:
系统确定需要刷新令牌时调用。应用程序应调用getToken()并将令牌发送到所有应用程序服务器。
这不会经常调用,需要进行密钥轮换并处理由于以下原因引起的实例ID更改:
- 应用删除实例ID
- 应用程序已在新设备上恢复
- 用户卸载/重新安装应用
- 用户清除应用数据
系统将限制所有设备上的刷新事件,以避免使用令牌更新使应用程序服务器过载。
同样如此,FirebaseInstanceIdService类扩展了Service类,无论应用程序是在前台还是后台,都可以运行。
答案 1 :(得分:2)
以下是onTokenRefresh()
的电话。
因此,简而言之,无论您的应用是在前台还是在后台,都会触发onTokenRefresh()
方法。