Salir de la aplicación de Android desde la clase de aplicación (no desde la actividad)
¿Existe alguna forma de salir de una aplicación de Android desde la propia clase Application, incluso antes de inicializar cualquier actividad?
El escenario es que el usuario instala la versión en un dispositivo no compatible, lo cual provoca bloqueos cuando intento cargar una biblioteca de terceros que no está destinada para ese dispositivo.
Esta carga del SDK de terceros ocurre en la clase Application.
¿Es seguro utilizar System.exit(0) en este caso, ya que no puedo llamar a finishAffinity()?
davy.ai
Sí, es posible salir de una aplicación de Android desde la clase Application incluso antes de inicializar cualquier actividad. Sin embargo, no se recomienda utilizar
System.exit(0)
para terminar forzosamente la aplicación, ya que puede provocar un comportamiento inesperado y no liberar los recursos, lo que puede llevar a la inestabilidad del sistema.En su lugar, puedes utilizar
Process.killProcess(Process.myPid())
para matar el proceso, lo que terminará la aplicación de manera adecuada y liberará los recursos retenidos. También se recomienda capturar cualquier excepción y manejarla adecuadamente para evitar que la aplicación se bloquee.Por lo tanto, en el escenario dado donde un SDK de terceros causa bloqueos en un dispositivo no compatible, es seguro utilizar
Process.killProcess(Process.myPid())
en la clase Application para salir de la aplicación de forma adecuada.