【问题标题】:Handle dismissed Firebase notification in Android System Tray在 Android 系统托盘中处理已关闭的 Firebase 通知
【发布时间】:2017-04-18 10:09:22
【问题描述】:

onMessageReceived 方法中,我将一些数据保存在本地数据库中。

如果当我点击通知时应用处于背景,它会将我重定向到启动器活动。我正在处理来自 Bundle 的传入数据并将其保存在本地数据库中。

当用户关闭通知时,我该如何处理? 因为如果用户关闭通知,我从服务器收到的数据就会丢失。

【问题讨论】:

  • 为什么不一收到onmessageReceived中的数据就保存?
  • @DivyeshPatel 我一收到数据就保存它。但如果应用程序在后台 onMessageReceived 将不再被调用。
  • 因为,您正在使用通知。而是使用 FCM 的 Data 方法,它每次都会调用 onMessageReceived
  • 这行得通。谢谢!

标签: android firebase android-notifications firebase-cloud-messaging


【解决方案1】:

您可以在收到数据时使用广播接收器保存数据,请查看此链接:https://developer.android.com/guide/components/broadcasts.html

【讨论】:

    【解决方案2】:

    您可以通过将 deleteIntent 添加到通知构建器来处理解雇。 使用意图,向其添加您收到的数据并将其重定向到处理程序类。 在处理程序类中提取数据并保存到 db :)

    mBuilder.setDeleteIntent(PendingIntent.getService(this, 0, new Intent(this.context, YourHandlingClass.class), PendingIntent.FLAG_CANCEL_CURRENT));
    

    【讨论】:

      【解决方案3】:

      删除通知时已修复,fcm使用DATA方法。

      谢谢@DivyeshPatel

      【讨论】:

        【解决方案4】:

        1.您可以在onMessageReceived中直接将数据保存到本地数据库,而不是等待用户打开通知。

        2.禁用自动取消

        notication.setAutoCancel(false)
        

        【讨论】:

          猜你喜欢
          • 2017-08-28
          • 2017-02-10
          • 1970-01-01
          • 1970-01-01
          • 2018-12-12
          • 1970-01-01
          • 1970-01-01
          • 2017-02-03
          • 1970-01-01
          相关资源
          最近更新 更多