Android应用未启动时能否定期获取有效FCM Token并上报服务器?
Android应用退出未重启时能否定期获取FCM Token并发送至服务器?
- 结论:不行。当用户完全退出应用(进程被系统或用户终止)后,应用没有任何运行中的组件,根本没办法主动执行任何代码逻辑,包括获取FCM Token、发起网络请求发送到服务器这些操作。
- FCM Token的获取前提:获取Token的
FirebaseMessaging.getInstance().getToken()方法必须在应用进程存活的状态下才能调用执行,一般都是在应用启动流程里完成这个操作。 - 所谓“例外”不成立:就算应用申请了后台任务权限或者前台服务,只要用户彻底退出(比如从最近应用列表划掉、手动强制停止),系统会直接终止应用进程,这些后台能力也无法生效,没法维持定期任务的执行。
- 额外提醒:FCM Token不会频繁变动,只有在应用重装、清除数据、设备系统变更等少数场景下才会更新。如果之前已经把有效Token同步到服务器,只要Token没失效就不需要重复发送;如果Token失效,FCM会尝试推送通知告知应用,但这也得依赖应用进程能正常接收推送——也就是进程没被彻底终止才行。
内容的提问来源于stack exchange,提问作者lf215
相关产品推荐
相关产品推荐

