不将值从推送通知传递到活动

时间:2019-01-08 19:42:23

标签: java android-studio kotlin push-notification android-pendingintent

我无法将价值从推送通知传递给活动

我使用Firebase Messaging Service进行推送通知。但是我无法使用PendingIntent将价值传递给活动。

MyFirebaseMessagingService

val intent = Intent(this, MainActivity::class.java)
    intent.putExtra("key", "value")
    val contentIntent = PendingIntent.getActivity(
            this, 0, intent, 0)

    notificationBuilder.setAutoCancel(true)
            .setDefaults(Notification.DEFAULT_ALL)
            .setWhen(System.currentTimeMillis())
            .setSmallIcon(R.drawable.sa_logo_mini)
            .setLargeIcon(BitmapFactory.decodeResource(resources, R.drawable.sa_icon_big))
            .setContentTitle(title)
            .setContentText(content)
            .setContentIntent(contentIntent)
            .setContentInfo("Breaking")

    notificationManager.notify(1, notificationBuilder.build())

MainActivity

    val Y = intent.getStringExtra("key")
    Log.i(C.T, "CHECHE = "+Y)

在单击推送通知MainActivity之后,但是intent.getStringExtra(“ key”)始终等于null。

哪里有错?

1 个答案:

答案 0 :(得分:1)

尝试使用一些标志,例如,使用 FLAG_ONE_SHOT FLAG_CANCEL_CURRENT 表示 PendingIntent 只能使用一次,并且如果所述< strong> PendingIntent 已经存在,应在生成新的前取消当前的:

val contentIntent = PendingIntent.getActivity(this, 0, 
    intent, PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_CANCEL_CURRENT);