Cómo salir de la aplicación de Android mediante programación

Resuelto Vignesh asked hace 54 años • 0 respuestas

Encontré un código para cerrar una aplicación de Android mediante programación. Al utilizar cualquiera de los siguientes códigos en onDestroy(), ¿se cerrará la aplicación por completo?

  1. System.runFinalizersOnExit(true)
    (O)
  2. android.os.Process.killProcess(android.os.Process.myPid());

No quiero ejecutar mi aplicación en segundo plano después de hacer clic en el botón Salir. Por favor, infórmeme si puedo usar alguno de estos códigos para salir de mi aplicación. Si es así, ¿qué código puedo usar? ¿Es una buena forma de salir de la aplicación en Android?

Vignesh avatar Jan 01 '70 08:01 Vignesh
Aceptado

Desde API 16 puedes usar el método FinishAffinity, que parece estar bastante cerca de cerrar todas las actividades relacionadas por su nombre y descripción de Javadoc:

this.finishAffinity();

Termine esta actividad, así como todas las actividades inmediatamente inferiores en la tarea actual que tengan la misma afinidad. Esto generalmente se usa cuando una aplicación se puede iniciar en otra tarea (como desde un ACTION_VIEW de un tipo de contenido que comprende) y el usuario ha usado la navegación hacia arriba para salir de la tarea actual y entrar a su propia tarea. En este caso, si el usuario ha navegado hacia otras actividades de la segunda aplicación, todas ellas deben eliminarse de la tarea original como parte del cambio de tarea.

Tenga en cuenta que este final no le permite entregar resultados a la actividad anterior y se generará una excepción si intenta hacerlo.


Desde API 21 puedes usar un comando muy similar

finishAndRemoveTask();

Finaliza todas las actividades de esta tarea y la elimina de la lista de tareas recientes.

sivi avatar Jan 04 '2015 12:01 sivi
getActivity().finish();
System.exit(0);

¡Esta es la mejor manera de salir de tu aplicación!

La mejor solución para mí.

Ashton avatar Sep 03 '2014 11:09 Ashton

finishAffinity();

System.exit(0);

Si usa solo finishAffinity();sin System.exit(0);su aplicación, se cerrará pero su teléfono seguirá usando la memoria asignada, entonces... si desea una aplicación limpia y realmente cerrada, use ambas.

Este es el método más simple y funciona en cualquier lugar, salga de la aplicación de verdad, puede tener mucha actividad abierta y aún así cerrará todo sin problemas.

ejemplo de un clic en un botón

public void exitAppCLICK (View view) {
    
    finishAffinity();
    System.exit(0);
    
}

o si quieres algo bonito, ejemplo con un diálogo de alerta con 3 botones SÍ NO y CANCELAR

Primero asegúrese de agregar la importación para AlertDialog como:

importar android.app.AlertDialog.Builder

// alertdialog for exit the app
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);

// set the title of the Alert Dialog
alertDialogBuilder.setTitle("your title");

// set dialog message
alertDialogBuilder
        .setMessage("your message")
        .setCancelable(false)
        .setPositiveButton("YES"),
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,
                                        int id) {
                        // what to do if YES is tapped
                        finishAffinity();
                        System.exit(0);
                    }
                })

        .setNeutralButton("CANCEL"),
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,
                                        int id) {
                        // code to do on CANCEL tapped
                        dialog.cancel();
                    }
                })

        .setNegativeButton("NO"),
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,
                                        int id) {
                        // code to do on NO tapped
                        dialog.cancel();
                    }
                });

AlertDialog alertDialog = alertDialogBuilder.create();

alertDialog.show();
Cristian Babarusi avatar Jan 18 '2017 01:01 Cristian Babarusi