# #android #firebase-cloud-messaging
Вопрос:
У меня есть график навигации, который начинается с определенного фрагмента, который принимает один аргумент startingId
по умолчанию внутри моего графика я установил его значение равным 0
до сих пор разработчики бэкенда присылали мне уведомления, которые содержали только data
такие:
"data" : {
"startingId" : 3
}
это означало бы, что он всегда запускает мое приложение (даже если оно находится в фоновом режиме), и я бы создал уведомление с ожидающим намерением, которое загрузило бы мое приложение с правильными параметрами
к сожалению, приложение стало кроссплатформенным, и теперь они должны отправлять мне сообщения FCM примерно так:
"notification" : {
"title_loc_key" : "start_changed"
"body_loc_key" : "start_changed_body"
"android_channel_id" : "updates"
}
"data" : {
"startingId" : 3
}
это означает, что когда пользователь нажимает на уведомление, пока мое приложение находится в фоновом режиме, приложение запустится с набором параметров startingId -> 3 в качестве параметров
но я не могу использовать этот пакет в своем стартовом фрагменте
вместо этого я делаю во фрагменте что-то вроде этого:
private val startingId by lazy { activity.intent?.extras?.getValue("startingId")?.toString()?.toIntOrNull()?: 0 }
и я удалил startingId
аргумент из своего начального фрагмента
есть ли способ создать уведомление, которое передаст полезную нагрузку «данные» в мой начальный фрагмент назначения, как я сделал бы только с объектом json «данные»? или я застрял с получением значения из намерения действия?
Комментарии:
1. Есть ли причина, по которой вы не передаете данные в начальный пункт назначения ?
2. Это то, что я делал со своим ожидающим намерением, к сожалению, теперь намерение создается уведомлением, и когда мое приложение находится в фоновом режиме, я не могу повлиять на него
3. и под этим я подразумеваю, что объект data json доступен для моей деятельности, но не для моего начального пункта назначения, когда приложение запускается из уведомления
4. Я в замешательстве. Документы, на которые я ссылался, конкретно касаются выполнения любой предварительной обработки, которую вы хотите, на уровне действия (т. Е. На уровне, которому принадлежит все
NavHostFragment
), а затем передачи именно тех аргументов, которые вы хотите, в пункт назначения запуска. Это не имеет ничего общего с подвесными замыслами или чем-то подобным.5. о, так вы имеете в виду, что я мог бы использовать само действие для передачи аргументов из уведомления, вместо того, чтобы ожидать, что уведомление выполнит работу, я об этом не подумал, вы правы, это должно сработать, спасибо