如何接收firebase消息,即使应用程序被杀死?

9fkzdhlc  于 2023-06-24  发布在  其他
关注(0)|答案(1)|浏览(178)

您希望即使应用程序处于已终止状态也能收到通知。
通常,您将使用以下代码段从fcm读取数据:

class MyFcmListenerService : FirebaseMessagingService() {
    override fun onMessageReceived(remoteMessage: RemoteMessage) {
        Log.d("TAG","onMessageReceived: called")
    }
}

您将看到onMessageReceived:当应用程序处于前台/后台时,在一些具有库存Android的设备中,调用在logcat中打印。但如果设备具有MIUI,ColorOS,OneUI等。由于进程已终止,您将无法在后台看到onMessageReceived。

cu6pst1q

cu6pst1q1#

以下代码片段可用于在应用处于后台/已终止状态时接收FCM消息

class BackgroundFcmReceiver : WakefulBroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
    val extras = intent.extras?.keySet()
    if (extras != null) {
        for (key in extras) {
            Log.d("TAG", "$key")
        }
    }

}

在开发者文档中,WakefulBroadcastReceiver是一种旧的实现BroadcastReceiver的模式,它接收设备唤醒事件,然后将工作传递给android.app.Service,同时确保设备在转换期间不会返回睡眠状态。这个类负责为您创建和管理部分唤醒锁;

注意:必须申请android.Manifest.permission.WAKE_LOCK权限才能使用

相关问题