Как (правильно) открыть действие / фрагмент из службы Foreground с помощью компонентов навигации - PullRequest
3 голосов
/ 12 июня 2019

В моем случае использование службы Foreground ограничено Notification.

Пользователь может убить приложение, но служба Foreground все еще жива.Кроме того, пользователь может щелкнуть по Notification и открыть HomeFragment.

Мой текущий NavGraph выглядит следующим образом:

enter image description here

В настоящее время я использую NavDeepLinkBuilder, чтобы открыть мой HomeFragment, когда пользователь нажимает в уведомлении:

val pendingIntent = NavDeepLinkBuilder(context)
    .setGraph(R.navigation.nav_graph)
    .setDestination(R.id.homeFragment)
    .createPendingIntent()

return NotificationCompat.Builder()
    .setOngoing(true)
    .setContentIntent(pendingIntent)
    .build()

Этот код работает, но я столкнулся с несколькими проблемами:

  • На onBackPressed, HomeFragment мигает, и мне нужно дважды нажать кнопку возврата, чтобы фактически закрыть приложение из HomeFragment.
  • Этот подход не 'не выглядит правильно, так как у меня нет глубоких ссылок в моем приложении;
  • NavDeepLinkBuilder не принимает Action (где я определяю popUpTo, popUpToInclusive и т. д. ), только destinationId

В связи с этим сценарием мой вопрос: NavDeepLinkBuilder - это правильный способ открыть мой HomeFragment изОбслуживание?

Спасибо!

...