Método para integrar un sistema de pulsación doble para salir de la App en Android. Para ello deberemos sobrescribir el evento de llamada onBackPresed()
class MainActivity : AppCompatActivity() {
var lastClickTime: Long = 0
...
override fun onBackPressed() {
if (lastClickTime.plus(2000L) > System.currentTimeMillis()) {
super.onBackPressed()
} else {
Toast.makeText(this, getText(R.string.press_again_exit), Toast.LENGTH_SHORT).show()
lastClickTime = System.currentTimeMillis()
}
}
Si se usa el componente Navigation de componentes de arquitectura de Android
private var firstClickTime: Long = 0L
...
override fun onBackPressed() {
if ((navController.graph.startDestination == navController.currentDestination?.id) && (!shouldBeExit())) {
toast(R.string.double_back_pressed)
} else super.onBackPressed()
}
private fun shouldBeExit(milSeconds: Long = 2000L): Boolean {
return if (firstClickTime + milSeconds < System.currentTimeMillis()) {
firstClickTime = System.currentTimeMillis()
false
} else true
}