不将推送通知的值传递给 Activity

Not pass value from push notification to Activity

我无法将推送通知的值传递给 activity

我使用 Firebase 消息服务进行推送通知。但是我无法使用 PendingIntent 将值传递给 activity。

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") 始终为空。

哪里出错了?

尝试使用一些标志,例如使用FLAG_ONE_SHOTFLAG_CANCEL_CURRENT来表示PendingIntent只能使用一次,如果描述的PendingIntent已经存在,在生成新的之前应该取消当前的:

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