Я не могу передать значение из push-уведомления в действие
Я использую службу обмена сообщениями Firebase для push-уведомлений. Но я не могу передать значение активности с помощью 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())
Основная деятельность
val Y = intent.getStringExtra("key")
Log.i(C.T, "CHECHE = "+Y)
После нажатия на push-уведомление запускается MainActivity, но intent.getStringExtra («ключ») всегда равен нулю.
Где ошибка?




Попробуйте использовать некоторые флаги, например, используйте FLAG_ONE_SHOT и FLAG_CANCEL_CURRENT, чтобы указать, что PendingIntent можно использовать только один раз, и если описанный PendingIntent уже существует, текущий должен быть отменен перед созданием нового:
val contentIntent = PendingIntent.getActivity(this, 0,
intent, PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_CANCEL_CURRENT);