当应用不在前景中时,在服务中接收FCM数据消息

时间:2019-11-15 13:21:24

标签: java android firebase firebase-cloud-messaging background-service

FCM文档指出,当应用程序处于前台状态时,FCM消息将传递到系统托盘。

我想在FirebaseMessagingService中处理这些消息。是否可以访问系统托盘以获取firebase消息(因为我已经有预定的服务)或重新激活FirebaseMessagingService.onMessageReceived行为(如在较早的firebase API版本上一样)?

2 个答案:

答案 0 :(得分:1)

onMessageReceived仅在消息没有附加通知时调用。 因此,对于具有通知和有效负载的消息,将不会被调用。

根据FCM documentation

  

onMessageReceived为大多数消息类型提供,但以下情况除外:

     

您的应用在后台运行时发送的通知消息。在这种情况下,通知将传递到设备的系统托盘。用户点击通知会默认打开应用启动器。

     

同时具有通知和数据有效负载的消息(在后台接收)。在这种情况下,通知将传递到设备的系统托盘,数据有效载荷将在启动器活动的意图之外传递。

如您所见,即使您的应用程序处于后台,也会调用onMessageReceived

答案 1 :(得分:0)

由于节电限制,消息在小米设备上消失了。 更改电池管理设置后,数据消息到达