¿Cómo puedo evitar que mi aplicación se convierta en zombi después de manejar una excepción no detectada?
Estoy manejando cualquier excepción no detectada que ocurra en mi aplicación a través de:
<code>Thread.setDefaultUncaughtExceptionHandler(this); </code>
donde este es mi lanzador Actividad implementando UncaughtExceptionListener. Manejé la excepción y la envié a mi servidor de registro, pero mi aplicación no termina. Simplemente se ejecuta como un zombi hasta que se presiona el botón de inicio o atrás. ¿Cómo puedo matar el proceso después de manejar la excepción?
Editar
Aquí hay una prueba y actividad de trabajo que lanza una excepción no detectada que debe ser capturada (por Hilo) y manejada. El brindis nunca se publica y el proceso se convierte en zombie una vez que se registra la excepción.
<code>class TestActivity extends Activity implements UncaughtExceptionListener { @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); Thread.setDefaultUncaughtExceptionHandler(this); throw new RuntimeException("I'm a destuctive booger."); setContentView(R.layout.activity_test); } @Override public void uncaughtException(Thread thread, Throwable toss) { Log.e(TAG, "An uncaught exception has been recieved.", toss); Toast.makeText(this, "Big Error", Toast.LENGTH_LONG).show(); } } </code>