Согласно документации navigateUp()
и popBackStack()
документации , оба возвращают значение boolean
, указывающее:
true
если стек извлечен и пользователь перемещен в другое место назначения, false
в противном случае
NavController управляет только своим собственным задним стеком (т. Е. Адресатами, которые вы положили в задний стек), и не содержит или не работает с задним стеком операций.
Если вы просто хотите всегда завершать свою деятельность, когда нажата кнопка «назад», прямой вызов requireActivity().finish()
действительно является правильным решением.
В противном случае вам следует вызывать requireActivity().finish()
только в том случае, если popBackStack()
/ navigateUp()
вернет false - это ваш признак того, что в заднем стеке NavController больше ничего нет и вам нужно обрабатывать задний стек самостоятельно.