У меня есть операция, которая загружает данные из inte rnet, и она отлично работает, за исключением того, что мне нужно дважды щелкнуть кнопку назад, чтобы завершить sh это. Я также заметил, что в действиях, которые не подключаются к inte rnet, кнопка «Назад» работает с первого нажатия. и при отладке я обнаружил, что обратный вызов менеджера фрагментов обрабатывает первый щелчок
FragmentManager.this.handleOnBackPressed();
из источника
void handleOnBackPressed() {
// First, execute any pending actions to make sure we're in an
// up to date view of the world just in case anyone is queuing
// up transactions that change the back stack then immediately
// calling onBackPressed()
execPendingActions();
if (mOnBackPressedCallback.isEnabled()) {
// We still have a back stack, so we can pop
popBackStackImmediate();
} else {
// Sigh. Due to FragmentManager's asynchronicity, we can
// get into cases where we *think* we can handle the back
// button but because of frame perfect dispatch, we fell
// on our face. Since our callback is disabled, we can
// re-trigger the onBackPressed() to dispatch to the next
// enabled callback
mOnBackPressedDispatcher.onBackPressed();
}
}
, хотя я не использую фрагмент