Я использую библиотеки навигации и app-compat для управления навигацией приложения.Но для конкретного случая мне нужно переопределить обратную навигацию с помощью OnBackPressedCallback
.Если я перемещаюсь к фрагменту сведений с помощью пользовательского интерфейса приложения, он работает безупречно, вызывается OnBackPressedCallback
.Однако, если переход от уведомления не вызывается.
Способ создания PendingIntent для уведомления использует библиотеку навигации:
val deepLink = NavDeepLinkBuilder(context)
.setComponentName(MainActivity::class.java)
.setGraph(R.navigation.app_navigation)
.setDestination(R.id.details_dest)
.createPendingIntent()
Я переопределяю обратную навигациюиспользуя OnBackPressedCallback
следующим образом:
class DetailsFragment : Fragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
requireActivity().onBackPressedDispatcher.addCallback(this, object: OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
findNavController().navigate(R.id.listing_dest)
}
})
}
...
}
Есть идеи?
Кстати, я использую следующие версии библиотеки:
- appcompat -> 1.1.0-alpha05
- навигация -> 2.0.0