La aplicación de Android se bloquea, pero no se reinicia – se reanuda desde otro punto de la aplicación

La aplicación en cuestión ya se ha implementado. He descubierto acerca de ACRA , y va a añadir que en para averiguar por qué los accidentes de aplicación están sucediendo.

Mi problema, sin embargo, es que la aplicación se bloquea (el diálogo aparecerá dándole la opción de "Force Close" o "Wait"), pero en lugar de reiniciar la aplicación completamente, se reanuda desde un punto antes de que ocurriera el fallo. Esto causa problemas sin embargo, que sólo se fijan al reiniciar la aplicación (por ejemplo, pérdida repentina de datos, fallos que no tienen sentido, etc.).

Entonces, ¿cómo puedo forzar mi aplicación, una vez que se estrelló, para terminar? (NO reiniciar).

Edit: El mayor problema es que después de la aplicación se bloquea, todos los datos en mi archivo de preferencias desaparece, hasta que la aplicación se reinicia cuando vuelve.

Android reiniciará la última actividad activa de forma predeterminada. En lugar de forzarlo a reiniciar, la mejor estrategia sería arreglar su aplicación, para que las actividades no se bloqueen o salgan con gracia, incluso si no hay datos disponibles. Si depende absolutamente de algunos datos (extras de intenciones) y no hay valores predeterminados, puede llamar a finish() si no está disponible o iniciar la actividad main / principal.

Otra forma es tener su propio controlador de excepciones por defecto que vuelve a iniciar la actividad principal, etc. después de reportar el bloqueo usando ACRA (creo que hay una solicitud de funcionalidad para esto en el bugtracker de ACRA).

Sé que esta pregunta es un poco antigua, pero para futuras referencias y google, aquí hay una respuesta completa de otro, difícil de encontrar, stackoverflow pregunta: Android aplicación se reinicia al cerrar / cierre de la fuerza


Crear una clase usada para manejar unCaughtException

 public class MyExceptionHandler implements java.lang.Thread.UncaughtExceptionHandler { private final Context myContext; private final Class<?> myActivityClass; public MyExceptionHandler(Context context, Class<?> c) { myContext = context; myActivityClass = c; } public void uncaughtException(Thread thread, Throwable exception) { StringWriter stackTrace = new StringWriter(); exception.printStackTrace(new PrintWriter(stackTrace)); System.err.println(stackTrace);// You can use LogCat too Intent intent = new Intent(myContext, myActivityClass); String s = stackTrace.toString(); //you can use this String to know what caused the exception and in which Activity intent.putExtra("uncaughtException", "Exception is: " + stackTrace.toString()); intent.putExtra("stacktrace", s); myContext.startActivity(intent); //for restarting the Activity Process.killProcess(Process.myPid()); System.exit(0); } } 

Luego, en cada subproceso (por lo general, solo tienes uno, a menos que inicies un nuevo subproceso (Async o …, claro que sabes sobre los subprocesos si puedes hacer nuevos;)), establece esta clase como DefaultUncaughtExceptionHandler

 Thread.setDefaultUncaughtExceptionHandler(new MyExceptionHandler(this, YourCurrentActivity.class)); 

Recuerde sin embargo! Hacerlo en el último paso de desarrollar su aplicación, usted tiene que por lo menos intentar manejar todas sus excepciones una por una antes de dejarlas para DefaultUncaughtExceptionHandler

  • SoLoader $ WrongAbiError con React Native Android
  • JSApplicationIllegalArgumentException con React Native Android
  • ¿Qué causa "RuntimeException: línea de archivo XML binario # 20: Debe proporcionar un atributo layout_height." (Se sospecha que ActionBarScherlock)?
  • Actualización de Android 6.0 que causa DB sqlite falla durante init
  • Unity APK de Android se estrelló al inicio
  • La aplicación android sigue fallando el código de error audioEffect -1
  • Manejar "No mantener actividades" en la aplicación Android
  • Android.support.v4.app.Fragment.setUserVisibleHint puntero nulo en la reanudación de la aplicación
  • Mi aplicación funciona en Gingerbread ... Crash en ICS y HC
  • Reinicie la aplicación después de bloquear mediante programación - Android
  • ¿Hacer una Snackbar sin vista?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.