【问题标题】:Notification PendingIntent not working when app is in background state当应用程序处于后台状态时,通知 PendingIntent 不起作用
【发布时间】:2021-11-28 14:54:26
【问题描述】:

更新!!!

我解决了这个问题。问题出在 remoteMessage.notification.let { 仅在应用程序处于前台状态时触发,因此我删除了这部分,它就像一个魅力)

当我发送推送通知并且应用程序处于后台状态时,通知即将到来,但我点击它时没有做任何事情。但是当应用在前台时,点击会再次进入应用。

这是来自 FirebaseMessagingService 的一些代码

remoteMessage.notification.let { val notificationManager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager

        val intent = Intent(this, MainActivity::class.java)
                .putExtra(CLICK_ACTION, mapData.get("click_action"))
                .putExtra(PAGE_TO_GO, mapData.get("pagetogo"))
                .putExtra(NOTIFIATION_TITLE, mapData.get("title"))
                .putExtra(NOTIFICATION_BODY, mapData.get("body"))
                .putExtra(COMPANY_ID, mapData.get("company_id"))
                .putExtra(DOCUMENT_ID, mapData.get("document_id"))
                .putExtra(ORDER_ID, mapData.get("order_id"))
                .putExtra(FROM_DATE_EXTRA, mapData.get("from_date"))
                .putExtra(TO_DATE_EXTRA, mapData.get("to_date"))
                .putExtra(LEDGER_VIEW_ID_EXTRA, mapData.get("id_for_ledge_view"))
                .putExtra(IS_CREDIT_EXTRA, mapData.get("is_credit"))
        intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK

        val pendingIntent = PendingIntent.getActivity(this, REQUEST_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT)
        val notification = NotificationCompat.Builder(this, getString(R.string.channel_id))
            .setSmallIcon(R.drawable.ic_baseline_notifications_24)
            .setContentTitle(it?.title)
            .setContentText(it?.body)
            .setContentIntent(pendingIntent)
            .setStyle(
                NotificationCompat.BigTextStyle()
                    .bigText(it?.body)
            )
            .setPriority(NotificationCompat.PRIORITY_HIGH)
            .setAutoCancel(true)
        with(notificationManager) {
            notify(NOTIFICATION_ID, notification.build())
        }

【问题讨论】:

  • 删除了android-studio 标签。该标签是针对 Android Studio 产品的问题/问题。您的问题是一个通用的 Android 问题,与 Android Studio 无关。
  • 这些“额外”是什么?它们是原始类型(字符串、整数等)还是复杂对象?
  • 我解决了这个问题。问题出在 remoteMessage.notification.let {} 上,它仅在应用程序处于前台状态时触发。因此,我删除了这部分,一切都像魅力一样工作
  • 很高兴您解决了这个问题。您可能想要创建此问题的答案并描述您是如何解决它的。这可能会对将来遇到类似问题的其他人有所帮助。
  • 您应该通过单击答案旁边的绿色复选标记来接受您的答案。这将从未决问题列表中删除该问题。

标签: android push-notification notifications android-pendingintent


【解决方案1】:

我解决了这个问题。问题出在 remoteMessage.notification.let { 仅在应用程序处于前台状态时触发,因此我删除了这部分,它就像一个魅力一样工作)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-04
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多