¿Cómo forzar la parada de mi aplicación androide mediante programación?

Me gustaría forzar la parada de mi aplicación de Android cuando haga clic en closeButton. Este es mi código.

protected void onCreate(Bundle savedInstanceState) { this.setContentView(R.layout.layoutxml); this.closeButton = (Button)this.findViewById(R.id.close); this.closeButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { finish(); } }); } 

Esto termina mi aplicación. Si voy a Settings -> Applications -> Manage applications -> <my application name> , puedo ver que el botón de 'Parada de Fuerza' está habilitado. ¿Significa esto que mi solicitud no se detuvo por completo?

¿Cómo puedo terminar completamente mi aplicación de Android y deshabilitar el botón 'Detener la Fuerza' en la 'Configuración'? De mi experiencia limitada, cuando se produce una excepción (ex. NullPointerException) en la aplicación, se detiene anormalmente, parece que terminó por completo y el botón 'Parada de la fuerza' se ve deshabilitado.

Otra forma es

 android.os.Process.killProcess(android.os.Process.myPid()); 

No creo que sea tan malo hacer esto, siempre que ponga esas llamadas en onDestroy() . (Si usted mata su proceso en medio del manejo de eventos, todo tipo de cosas malas -como el enfoque táctil que entra en el éter- puede ocurrir).

Sin embargo, usted necesita una razón convincente para desviarse de la mejor práctica, que es simplemente llamar a finish() y dejar que el sistema operativo se encargue de matar a su proceso cuando / si es necesario.

Nota: esto no mata la aplicación completa, pero si lo que quieres hacer es terminar todas las actividades de la aplicación, esta es la mejor opción.

Desde Android 16+ puedes usar lo siguiente:

finishAffinity();

Para versiones anteriores puede utilizar:

ActivityCompat.finishAffinity(Activity activity)

Espero que esto ayude

Una mala forma de eliminar la aplicación sería System.exit(0)

Edit: Creo que debo alguna explicación. Android maneja el ciclo de vida de la aplicación por su cuenta, y no se supone que 'ForceClose', y no sé ninguna buena manera de hacerlo. En general, está bien si su aplicación sigue viva en segundo plano, de esta manera si el usuario lo lanza de nuevo se abrirá rápidamente.

Pruebe este código para que la fuerza detenga su aplicación …

 private void QuitApplication(){ int pid = android.os.Process.myPid(); android.os.Process.killProcess(pid); Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); startActivity(intent); } 

Codificación feliz …

¿Por qué no realizar una llamada de shell a ActivityManager?

 try { Runtime.getRuntime().exec("am force-stop com.me.myapp"); } catch (IOException e) { e.printStackTrace(); } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.