Я пытаюсь открыть фрагмент с аргументами из моего уведомления. На самом деле, в моем случае у меня есть аудиоплеер, работающий со службой переднего плана с уведомлением, и теперь я хочу перейти к своему фрагменту для этого конкретного аудио, передав идентификатор аудио, когда пользователь нажимает на уведомление.
Вы можете открыть свою активность с помощью PendingIntent, а затем открыть свой фрагмент, обработав Intent внутри своей активности.
или этот ответ из похожей темы
NavDeepLinkBuilder:
val pendingIntent = NavDeepLinkBuilder(context)
.setComponentName(YourActivity::class.java)
.setGraph(R.navigation.your_nav_graph)
.setDestination(R.id.your_destination)
.setArguments(bundle)
.createPendingIntent()
//then
notificationBuilder.setContentIntent(pendingIntent)
Вы можете посмотреть этот пост. stackoverflow.com/a/55245317/11181035
О, сделал это! Спасибо, это должен быть ответ на мой вопрос.
Это был действительно очень быстрый ответ, вы, ребята, потрясающие ... еще раз спасибо.
Это воссоздает мой фрагмент. Есть ли способ вместо этого создать мой сохраненный фрагмент?
Я не могу воссоздать backstack с этой душой. У меня есть фрагмент A -> B -> C -> D -> E, когда я использую это решение, график только A -> E . Есть идеи?
Невозможно начать действие, внутри моего фрагмента отображается исключение нулевого указателя
Я использовал NavDeepLinkBuilder в своей службе и передал контекст службы, и это не сработало. Можете ли вы рассказать, как вы использовали NavDeepLinkBuilder в своей службе переднего плана.
При нацеливании на новый Android S вы должны использовать .createTaskStackBuilder() .getPendingIntent(0, FLAG_IMMUTABLE) вместо .createPendingIntent(), иначе ваше приложение выйдет из строя из-за новых ограничений Pending Intent.
это неуклюже, когда много навигации. Разве ребята из Navigation Architecture не сделали для этого никаких Utils? Я имею в виду, что обработка навигации с намерением проще.