Então, se você precisa de fazer alguma verificação no evento de onBackPressed dentro de um fragment? Se não sabe como fazer, é muito simples, basta colocar os códigos abaixo no seu fragment.
requireActivity().addOnBackPressedCallbackWithInterval(2000) {
Toast.makeText(context, getString(R.string.alert_press_again_to_exit), Toast.LENGTH_LONG).show()
}
fun FragmentActivity.addOnBackPressedCallbackWithInterval(millisToBack: Long, firstPressed: () -> Unit) {
onBackPressedDispatcher.addCallback(
ActivityUtils.getOnBackPressedCallbackWithInterval(
millisToBack,
firstPressed
)
)
}
object ActivityUtils {
fun getOnBackPressedCallbackWithInterval(millisToBack: Long, firstPressed: () -> Unit) =
object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
isEnabled = false
firstPressed()
object : CountDownTimer(millisToBack, millisToBack) {
override fun onTick(millisUntilFinished: Long) {}
override fun onFinish() {
isEnabled = true
}
}.start()
}
}
}
0 comentários