una son significa segundo restaurar quitar quiere que plano mediante las forzar evitar ejecutar ejecutan detención detencion decir como cierre cerrada aplicación aplicaciones aplicacion android forceclose termination

android - significa - que son aplicaciones en segundo plano



¿Cómo forzar la detención de mi aplicación de Android programáticamente? (4)

Me gustaría forzar la detención de mi aplicación de Android cuando hago 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 ''Forzar parada'' está habilitado. ¿Significa esto que mi solicitud no fue detenida completamente?

¿Cómo puedo finalizar mi aplicación de Android por completo y deshabilitar el botón ''Forzar parada'' en ''Configuración''? Desde mi experiencia limitada, cuando se produce una ''Excepción'' (por ejemplo, NullPointerException) en la aplicación, se detiene de forma anormal, parece que se terminó completamente y el botón ''Forzar detención'' parece deshabilitado.


¿Por qué no hacer un Shell-Call a ActivityManager?

try { Runtime.getRuntime().exec("am force-stop com.me.myapp"); } catch (IOException e) { e.printStackTrace(); }


Otra forma es

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

No creo que sea tan malo hacer esto, siempre y cuando pongas esas llamadas en onDestroy() . (Si mata su proceso en medio de la gestión de eventos, pueden ocurrir todo tipo de cosas malas, como el enfoque táctil que entra en el éter).

Sin embargo, necesita una razón convincente para desviarse de las mejores prácticas, que es simplemente llamar a finish() y dejar que el sistema operativo se encargue de acabar con su proceso cuando sea necesario.


Una mala manera de matar 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 sí solo, y se supone que usted no debe ''Forzar el cierre'', y no conozco ninguna buena forma de hacerlo. En general, está bien si su aplicación aún está activa en segundo plano, de esta manera, si el usuario la inicia de nuevo, aparecerá rápidamente.


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

Android ≥ 16

finishAffinity();

Android <16

ActivityCompat.finishAffinity(Activity activity)

Espero que esto ayude