FCM后台/未运行通知getIntent()。getExtra()has mMap allways null

时间:2018-03-07 12:55:53

标签: android push-notification background bundle

我正在开发一个应用程序,当我触发某些事件时,我会从服务器获取一些推送通知。

当应用程序在前台时,一切都很好,在onMessageReceived()中我得到了remoteMessage并根据它的map键值来处理它。

问题是在后台或应用程序没有运行时...我仍然在设备屏幕上收到通知,当我点击它时,活动开始。

我在活动开始后进行以下验证:

 Bundle mBundle = getIntent().getExtras();
    if(mBundle != null)
    {
    //do stuff
    }

但我总是在bundle对象中得到mMap = null,这意味着我无法正确处理推送通知。

enter image description here

可以做些什么吗?

1 个答案:

答案 0 :(得分:0)

Notification Message

有两种类型

<强> 1。通知消息

应用程序运行时可以获取通知消息,但如果应用程序未运行(已终止),则无法运行。它只显示通知已到达。

例如,

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "notification":{
      "title":"Portugal vs. Denmark",
      "body":"great match!"
    }
  }
}

<强> 2。数据信息(也称为无声通知)

即使应用程序未运行,Data Messagegs也能正常运行。

例如,

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "data":{
      "Nick" : "Mario",
      "body" : "great match!",
      "Room" : "PortugalVSDenmark"
    }
  }
}