FCM 通知出现问题



我正在使用Firebase向我的应用发送推送通知,并希望将一些值保存到共享首选项中。当应用程序处于前台时,它可以完美运行,但当应用程序在后台时,它不会保存值。我的代码如下所示:

    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        Log.e("Remotemessage",remoteMessage.toString());
        String Heading = remoteMessage.getNotification().getTitle();
        String message = remoteMessage.getNotification().getBody();
        Map<String, String> data = remoteMessage.getData();
        Log.e("Firebase notification ", " KEY1");
        sessionManager=new SessionManager(this);
        Log.e("Firebase notification ", " KEY"+data.get("click_action"));
        Log.e("Firebase notification ", " KEY new"+data.get("key"));
        int studentid= Integer.parseInt(data.get("student_id"));
        Log.e("STUDENT ID",""+studentid);
        if(studentid!=0)
        {
            sessionManager.saveStudentId(studentid);
        } 
}

但通知显示了这两种情况。如何解决这个问题??

根据你的帖子,我假设你正在发送一个包含notificationdata消息的有效负载。有关更多详细信息,请参阅消息类型。

如处理 Android 消息文档所示,当应用程序在后台发送包含两种消息类型的有效负载时,消息(notification数据(将由 Android 系统托盘处理。

您可以做两件事:

  1. 发送仅限data的消息负载,以便onMessageReceived()处理消息,而不管你的应用是在前台还是后台。

  2. 在用户点击 Android 系统托盘中的通知后,实现在data有效负载中获取详细信息的处理。在这里看到我的答案。

相关内容

  • 没有找到相关文章

最新更新