He personalizado el botón Atrás. cuando hago clic en él, la aplicación se bloquea después de un segundo. aquí está el código: registro de errores
private var mBackPressed: Long = 0 private val timeInterval = 2000 private fun configBackPress() { requireActivity().onBackPressedDispatcher.addCallback(this, true) { when { mBackPressed + timeInterval > System.currentTimeMillis() -> { requireActivity().onBackPressedDispatcher.onBackPressed() } else -> { Snackbar.make( requireActivity().findViewById(android.R.id.content), getString(R.string.press_once_again_back_button_to_exit), Snackbar.LENGTH_SHORT ) .setAnchorView(viewBinding.vSnackBarHelper) .show() mBackPressed = System.currentTimeMillis() } } } }cuando el usuario hace clic dos veces en el botón Atrás, la parte trasera debería funcionar.
antes de llamar a requireActivity().onBackPressedDispatcher.onBackPressed() . debe establecer isEnabled en falso porque si revisamos el código fuente onBackPressed vemos: 
busca devoluciones de llamadas activas y, si las encuentra, las llama y las devuelve. eso es lo que hace el bucle.
su código debe ser:
isEnabled = false requireActivity().onBackPressedDispatcher.onBackPressed()reemplazar
requireActivity().onBackPressedDispatcher.onBackPressed()con solo
finish() actualmente, su conjunto onBackPressedDispatcher en Fragment está llamando a onBackPressed in ( require d Activity ), que al principio intentará propagar este evento a sus propios hijos: Fragment s. entonces, nuevamente, se activará onBackPressedDispatcher , nuevamente llamará al método Activity s y esto es un bucle
editar: isEnabled = false es un mejor enfoque, solo quería dejarle una descripción del caso