Android Firebase通知onMessageReceived显示与应用程序在后台时相同的通知

Android Firebase通知onMessageReceived显示与应用程序在后台时相同的通知,android,firebase,firebase-notifications,Android,Firebase,Firebase Notifications,我正在从控制台向我的应用程序发送消息,当它在后台时,我设法让应用程序按我所希望的方式进行响应。因此,SDK基本上会显示一个通知,当用户点击它,应用程序启动时,我有一些自定义数据字段用于构建对话框消息 由于我也希望应用程序在前台时做出反应,我添加了服务,并且我注意到RemoteMessage还包含一个getNotification()方法,该方法返回RemoteMessage.Notification,我认为SDK使用该方法在应用程序在后台时显示通知 有没有一种简单的方法可以简单地使用检索到的通知

我正在从控制台向我的应用程序发送消息,当它在后台时,我设法让应用程序按我所希望的方式进行响应。因此,SDK基本上会显示一个通知,当用户点击它,应用程序启动时,我有一些自定义数据字段用于构建对话框消息

由于我也希望应用程序在前台时做出反应,我添加了服务,并且我注意到
RemoteMessage
还包含一个
getNotification()
方法,该方法返回
RemoteMessage.Notification
,我认为SDK使用该方法在应用程序在后台时显示通知


有没有一种简单的方法可以简单地使用检索到的通知并显示它,就像应用程序在后台一样?

当然有。只需覆盖
FirebaseMessagingService.onMessageReceived
,并从Firebase云消息文档中获取通知正文,如本例所示:

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
    // TODO(developer): Handle FCM messages here.
    // If the application is in the foreground handle both data and notification messages here.
    // Also if you intend on generating your own notifications as a result of a received FCM
    // message, here is where that should be initiated. See sendNotification method below.
    Log.d(TAG, "From: " + remoteMessage.getFrom());
    Log.d(TAG, "Notification Message Body: " + remoteMessage.getNotification().getBody());
}

有关详细信息,请参阅Firebase云消息文档的“Override onMessageReceived”(覆盖onMessageReceived)。

可能适合您!!此外,一旦您收到消息,则由您生成通知。请参见FCM Android示例中的sendNotification方法:谢谢,我希望有一种更简单的方法,比如Inner-onMessageReceived简单地接收通知并显示它,就像SDK在后台应用程序时如何使用所有自定义字段、图标和消息一样。由于没有这样简单的方法,我使用的是答案中的Approach,并自己做通知,最终将与SDK生成的通知类似。有人能解决这个问题吗?