estoy manejando las excepciones no detectadas que ocurren en mi solicitud a través de:¿Cómo evito que mi aplicación zombifique después de manejar una excepción no detectada?
Thread.setDefaultUncaughtExceptionHandler(this);
eran esta es mi lanzador Actividad implementar UncaughtExceptionListener. Manejo la excepción y la envío a mi servidor de registro sin problemas, sin embargo, mi aplicación no termina. Simplemente corre como un zombie 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í está una prueba y la actividad laboral que se produce una excepción no detectada que ha de ser capturados (por hilo) y manipulados. La tostada nunca se publica y el proceso se vuelve zombie una vez que se registra la excepción.
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();
}
}
Llamar 'finish()' en el método del controlador. También es probable que desee proporcionar un cuadro de diálogo emergente para informar al usuario también. – Squonk
@MisterSquonk, no puedo, mi contexto está anulado. Inicialmente tuve que ofrecer un mensaje de error crítico, pero la tostada no creará. Luego probé un receptor de transmisión y tampoco funcionó. – AedonEtLIRA
Lo siento, no entiendo. Usted dice que 'this' es su' Activity' de lanzador, por lo que si el método del manejador es parte de una 'Activity', para poder manejarlo debe tener' 'Running'' Activity'. El hecho de que 'Activity' sea una subclase indirecta de' Context' significa (en términos de OOP) y 'Activity' IS es' Context'. – Squonk