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

0 ответов

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