当应用程序在android中关闭时,是否可以将Firebase主题通知保存在sqlite中

时间:2016-07-25 12:15:30

标签: android firebase

当我发送Firebase主题通知时,onMessageReceived方法在应用程序处于

时不会触发
  1. 背景和屏幕锁定
  2. 申请与最近的申请相近
  3. 在上面两种情况下,我只在系统托盘中收到通知,我想在sqlite中以编程方式处理它

    same question i think

    以及在最近的应用程序中列出的前景和后台应用程序的工作

    所以我如何得到那个通知,我想在sqlite中存储通知

    我的邮递员请求在

    之下
        {
      "to": "/topics/181_Red_Route",
      "data": {
        "sound": "default",
        "badge": "1",
        "title": "Title1",
        "body": "Desc1"
      },
      "notification": {
        "sound": "default",
        "badge": "1",
        "title": "Title1",
        "body": "Desc1"
      },
      "priority": "high",
      "content_available": true
    }
    

    提前致谢

3 个答案:

答案 0 :(得分:0)

嘿伙计们,我的Android应用程序也存在同样的问题 当app在后台时,onMessageReceived方法不会触发

答案 1 :(得分:0)

https://firebase.google.com/docs/cloud-messaging/android/send-multiple

检查此链接是否提到,有两种方式可以发送消息有效负载。

1)通知

2)数据

如果服务器发送"数据" 有效负载,则它将在应用程序 onMessageReceived()方法中接收。您可以通过检查下面给出的有效负载,在 onMessageReceived()中对其进行管理。

// Check if message contains a data payload.
if (remoteMessage.getData().size() > 0) {
    Log.d(TAG, "Message data payload: " + remoteMessage.getData());
}

// Check if message contains a notification payload.
if (remoteMessage.getNotification() != null) {
    Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());
}

&安培;还要检查如何进行服务器代码,传递'通知' /'数据'。

https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages

答案 2 :(得分:0)

如果您在FCM消息中发送通知标记,则当应用处于后台时,它不会触发onMessageReceived代码。

相反,始终使用数据标记发送通知。这将确保所有FCM消息都触发onMessageReceived调用。在此调用中,您可以按照常用的android方法将消息保存在数据库中。

摘要:仅发送数据标记而不发送通知标记。处理在onMessageReceived()中显示和保存通知。无论应用程序处于前台还是后台或被杀死,都可以正常工作。

警告:如果您计划启动IOS,则只有在应用处于前台或后台但尚未被杀死的情况下,才会传递带有数据标记的FCM消息。在此之前不会收到任何消息。