【问题标题】:onMessageReceived() not calling when FCM notification Received [duplicate]收到 FCM 通知时 onMessageReceived() 未调用 [重复]
【发布时间】:2018-08-30 14:41:58
【问题描述】:

在我的项目中,我必须在应用程序运行时接收 FCM 推送通知 onMessageReceived() 正在调用运行良好的应用程序,但问题是当应用程序被杀死或在后台时 onMessageReceived() 没有调用但 FCM 通知是显示在通知托盘上

【问题讨论】:

  • 在这种情况下,您的启动器活动将处理通知 Not onMessageReceived() 方法。
  • @Tharun 使用通知类型发送 FCM 消息时,当您的应用未运行时,您不会在 onMessageReceived() 方法中收到消息
  • 谢谢@HasifSeyd,但我必须处理那个案子,你能帮我吗
  • @Tharun 但是当您单击通知托盘中的通知时,您将在 Launch Activity 中以 Bundle 的形式获取数据,这些数据将在从服务器发送推送通知时分配
  • @Tharun,请查看我的answer

标签: android firebase push-notification firebase-cloud-messaging


【解决方案1】:

要解决这个问题,需要单独使用data payload,例子:

"data": {
"titles": "New Title",
"bodys": "body here"
}

因为如果您使用数据负载,如果应用程序在前台或后台,它将输入onMessageRecieved()

那么在FCM你可以执行以下操作来接收数据:

 if (remoteMessage.getData().size() > 0) {

    title = remoteMessage.getData().get("titles");
    body = remoteMessage.getData().get("bodys");
}

更多信息在这里:

https://firebase.google.com/docs/cloud-messaging/android/receive#handling_messages

【讨论】:

  • 谢谢@Peter Haddad 我试过这个,但是当应用程序被杀死时远程消息大小没有得到
  • 是的,当应用程序被杀死时,它不适用于所有手机,请查看此链接:stackoverflow.com/a/39505298/7015400
  • 谢谢@Peter Haddad,我认为这个链接对我有帮助
猜你喜欢
  • 1970-01-01
  • 2021-10-30
  • 2018-04-19
  • 2019-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多