Можно ли запустить код после всплывающего стека - PullRequest
0 голосов
/ 26 февраля 2020
requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner) {
    findNavController().popBackStack()
    //runs after popping off the back stack
    (activity as MainActivity).toolbar.visibility = View.VISIBLE
}

Можно ли запускать код после popBackStack (), если фрагмент уже удален? Если я установил точки останова, я обнаружил, что (активность как MainActivity) .toolbar.visibility = View.VISIBLE запускается перед onPause () фрагмента, почему это так?

1 Ответ

1 голос
/ 26 февраля 2020

Похоже, popBackStack работает асинхронно:

Вывести все состояния стека назад до состояния с заданным идентификатором. Эта функция асинхронна - она ​​ставит запрос на выдвижение, но действие не будет выполнено, пока приложение не вернется к своему событию l oop. (см. здесь )

Существует альтернатива popBackStackImmediate .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...