Implementar doble pulsación atrás para salir de la App en Android


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

    }
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
if (firstClickTime + Constants.TIME_INTERVAL > System.currentTimeMillis()) {
super.onBackPressed();
return;
} else {
Toast.makeText(this, getString(R.string.double_back_pressed), Toast.LENGTH_SHORT).show();
}
firstClickTime = System.currentTimeMillis();
}
}
Anuncio publicitario

Publicado por Codelaby

Mobile DevDesigner

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

A %d blogueros les gusta esto: