应用程序打开时,在后台firebase上显示对话框的通知

时间:2016-12-14 11:38:22

标签: android firebase-cloud-messaging android-dialog android-background

对不起我的头衔,但让我解释一下。 我在我的应用上使用firebase云消息。现在,在触摸通知后,我需要运行应用程序,然后在应用程序未运行或在后台时显示对话框包含通知正文和标题。

默认情况下,FCM是指应用程序未在后台运行时,我会触摸通知,然后运行应用程序/转到前台。

任何人都可以指导我处理它吗?

1 个答案:

答案 0 :(得分:1)

  

处理背景应用中的通知消息

     

当您的应用在后台时,Android会将通知消息定向到系统托盘。用户点按通知会默认打开应用启动器。

     

这包括包含通知和数据有效负载的消息(以及从通知控制台发送的所有消息)。在这些情况下,通知会传送到设备的系统托盘,而数据有效负载会以启动器活动的意图附加内容的形式发送。

     

当您发送带有数据有效负载(通知和数据)的通知消息并且应用程序位于后台时,您可以从用户点击通知而启动的意图的附加内容中检索数据。

点击通知后,FCM sample启动MainActivity:

if (getIntent().getExtras() != null) {
    for (String key : getIntent().getExtras().keySet()) {
        String value = getIntent().getExtras().getString(key);
        Log.d(TAG, "Key: " + key + " Value: " + value);
    }
}

修改
onMessageRecieved(RemoteMessage remoteMessage)方法中使用remoteMessage.getData()获取服务器发送的数据,该数据返回Map<String,String>

现在创建一个Intent并指定一个要点击通知启动的类,并在此意图中放置您的通知数据。喜欢:

Intent resultIntent = new Intent(getApplicationContext(), MainActivity.class);
resultIntent.putExtra("notification_data", data.getData());

现在,当您显示通知时,将此意图传递给pendingIntent。

当点击通知启动MainActivity.class时,只需获取如下数据:

Map<String,String> notificationDataMap 
      = getIntent().getSerializableExtra("notification_data");

因此,您可以从地图获取数据。