应用程序在前台时无法处理 FCM 通知

Posted

技术标签:

【中文标题】应用程序在前台时无法处理 FCM 通知【英文标题】:Can't handdle FCM notification when app in foreground 【发布时间】:2022-01-01 23:29:37 【问题描述】:

伙计们,即使我编写了处理前台的代码,我也只有在后台应用程序时才会收到通知

这是我的 FirebaseMessagingService 类代码:

 private static final String CHANNEL_ID ="101" ;
@Override
public void onMessageReceived(@NonNull RemoteMessage remoteMessage) 
    Intent intent = new Intent(this, All_Tickets.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);

    NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "101")
            .setSmallIcon(R.drawable.ic_add)
            .setContentTitle(remoteMessage.getNotification().getTitle())
            .setContentText(remoteMessage.getNotification().getBody())
            .setPriority(NotificationCompat.PRIORITY_DEFAULT)
            // Set the intent that will fire when the user taps the notification
            .setContentIntent(pendingIntent)
            .setAutoCancel(true);

    NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);

// notificationId is a unique int for each notification that you must define
    notificationManager.notify(1, builder.build());


@Override
public void onNewToken(@NonNull String s) 


【问题讨论】:

【参考方案1】:

检查您的主要活动(在您的清单中设置为主要活动)的方法“onNewIntent”。可以在前台推送时调用它。如果它调用了,你必须从你的 Intent 的 extra 中获取数据。

【讨论】:

以上是关于应用程序在前台时无法处理 FCM 通知的主要内容,如果未能解决你的问题,请参考以下文章

当应用程序处于后台状态时,FCM 多个推送通知无法正常工作

如何在应用程序后台接收FCM推送通知数据,但在前台点击

在 iOS 10 下使用 FCM 在前台单击推送通知后无法导航到特定的 viewController

iOS 如何在应用未运行时处理 FCM

当应用程序处于后台状态时,FCM多次推送通知无法正常工作

使用 FCM 杀死应用程序时,Android 无法接收通知