>我无法将值从推送通知传递到活动
我使用 Firebase 消息服务推送通知。但我无法使用挂起意图将值传递给活动。
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())
主活动
val Y = intent.getStringExtra("key")
Log.i(C.T, "CHECHE = "+Y)
点击推送通知后,MainActivity 开始,但 intent.getStringExtra("key") 总是等于 null。
哪里有错误?
尝试使用一些标志,例如使用 FLAG_ONE_SHOT 和 FLAG_CANCEL_CURRENT 来指示 PendingIntent 只能使用一次,如果所描述的 PendingIntent 已经存在,则应在生成新 PendingIntent 之前取消当前标志:
val contentIntent = PendingIntent.getActivity(this, 0,
intent, PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_CANCEL_CURRENT);