如何在应用进程被杀死时仍接收Firebase Cloud Messaging消息?
FCM在定制ROM进程被杀后无法触发
onMessageReceived的问题 现象
- 原生Android设备上,无论应用处于前台还是后台状态,使用常规FCM监听服务代码时,都能正常触发
onMessageReceived方法,Logcat会输出onMessageReceived: called日志。 - 但在MIUI、ColorOS、OneUI这类定制化Android系统设备上,当应用进程被杀死后,后台状态下不会触发
onMessageReceived方法,导致无法接收FCM消息。
常规FCM消息监听实现代码
class MyFcmListenerService : FirebaseMessagingService() { override fun onMessageReceived(remoteMessage: RemoteMessage) { Log.d("TAG","onMessageReceived: called") } }
问题根源
这类定制ROM普遍存在严格的后台进程管控机制,当应用进程被系统杀死后,FCM的监听服务无法被系统唤醒,进而无法触发onMessageReceived回调。
内容的提问来源于stack exchange,提问作者Siddharth Shakya
相关产品推荐
相关产品推荐

