OnBackPressedCallback не вызывается, когда приходит из уведомления
Я использую библиотеки навигации и 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