Как перейти от службы к фрагменту навигации, используя, вероятно, ожидающее намерение?

Я пытаюсь открыть фрагмент с аргументами из моего уведомления. На самом деле, в моем случае у меня есть аудиоплеер, работающий со службой переднего плана с уведомлением, и теперь я хочу перейти к своему фрагменту для этого конкретного аудио, передав идентификатор аудио, когда пользователь нажимает на уведомление.

5
0
3 230
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете открыть свою активность с помощью 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)

это неуклюже, когда много навигации. Разве ребята из Navigation Architecture не сделали для этого никаких Utils? Я имею в виду, что обработка навигации с намерением проще.

Riajul 29.04.2019 20:20

Вы можете посмотреть этот пост. stackoverflow.com/a/55245317/11181035

Beyazid 29.04.2019 20:21

О, сделал это! Спасибо, это должен быть ответ на мой вопрос.

Riajul 29.04.2019 20:25

Это был действительно очень быстрый ответ, вы, ребята, потрясающие ... еще раз спасибо.

Riajul 29.04.2019 20:29

Это воссоздает мой фрагмент. Есть ли способ вместо этого создать мой сохраненный фрагмент?

mhashim6 07.07.2019 22:26

Я не могу воссоздать backstack с этой душой. У меня есть фрагмент A -> B -> C -> D -> E, когда я использую это решение, график только A -> E . Есть идеи?

AndroidRuntimeException 05.12.2019 23:11

Невозможно начать действие, внутри моего фрагмента отображается исключение нулевого указателя

Abraham Mathew 26.03.2020 08:55

Я использовал NavDeepLinkBuilder в своей службе и передал контекст службы, и это не сработало. Можете ли вы рассказать, как вы использовали NavDeepLinkBuilder в своей службе переднего плана.

Himanshu Malik 04.11.2020 09:43

При нацеливании на новый Android S вы должны использовать .createTaskStackBuilder() .getPendingIntent(0, FLAG_IMMUTABLE) вместо .createPendingIntent(), иначе ваше приложение выйдет из строя из-за новых ограничений Pending Intent.

Tim 29.05.2021 14:27

Другие вопросы по теме