Android 4.4.2 – java.lang.RuntimeException: Realización de la parada de la actividad que no se reanuda

Estoy recibiendo esta excepción en un dispositivo 4.4.2. No reproducible en el dispositivo Android 4.3 o inferior.

La configuración es que tengo una actividad en el hogar (subclase de soporte ActionBarActivity ). La actividad de inicio comprueba una bandera booleana y, si es verdadera, inicia una actividad de pantalla de bienvenida (sí, idealmente la salpicadura viene antes de la actividad de inicio, pero supongamos que no puedo cambiarla para que funcione de esa manera por ahora).

La pantalla de startActivityForResult se inicia con startActivityForResult , descarga algunas opciones de configuración del servidor y luego termina y devuelve el resultado a la actividad principal.

Lo curioso es que esto funciona bien en 4.3 y por debajo, pero en los dispositivos 4.4, obtengo la excepción anterior (traza de pila completa):

 02-21 13:36:16.733 24409-24409/test.player E/ActivityThread﹕ Performing stop of activity that is not resumed: {test.player/test.ui.actvities.HomeActivity} java.lang.RuntimeException: Performing stop of activity that is not resumed: {test.player/test.ui.actvities.HomeActivity} at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3147) at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3234) at android.app.ActivityThread.access$1100(ActivityThread.java:135) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1223) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5017) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) at dalvik.system.NativeStart.main(Native Method) 

Basado en lo anterior, parece que onStop (porque lanzo la actividad splash en onCreate) se llama antes de onResume para la actividad de inicio.

¿Por qué esto está causando problemas en 4.4.x?

Eso no me parece bien. La actividad de splash sería ahora la actividad principal en la pila, por lo que el método de ciclo de vida de HomeActivity onStop sería llamado eventualmente. Coincidentemente, moví la llamada de startActivity para la actividad de salpicadura de onCreate a onResume en onResume , y el error desaparece.

El problema seguirá estando en todos los teléfonos HighEnd con 4.4.2 y superiores, incluyendo NEXUS 5, Samsumg s4 ya que onResume se llama, pero aún así está en fase de animación. Por lo tanto, si intenta iniciar una actividad en onResume el problema se replicará.

Poner su actividad de conmutación en un manejador método retrasado.

  Handler handler = new Handler(new Handler.Callback() { @Override public boolean handleMessage(Message msg) { switch (msg.what) { case 1: //Strat another Activity Here default: break; } return false; } }); 

Y en onResume llama esto.

  handler.sendEmptyMessageDelayed(1, 1000); 

Para ese momento usted puede mostrar el cargador o algo o bloquear la interacción del usuario

Simplemente llame al método onResume super antes de iniciar la nueva actividad:

 super.onResume(); 

Yo estaba recibiendo esta excepción, incluso cuando se utiliza onResume() , así que terminé sobreponiendo onPostResume() y comenzar la actividad de allí, y la excepción se ha ido. No estoy seguro si esta es una solución ideal, pero aún así …

  • ¿Cómo crear un servicio de fondo siempre en ejecución?
  • La actividad continúa reiniciándose cuando cambia la orientación
  • Utilizar Fragmentos (ActionTabs) y Webview
  • Valor predeterminado para resultCode cuando la actividad termina
  • Instancia Única de Actividad
  • ¿Diferencia entre appcompat_v7 y android-support-v7-appcompat?
  • Significado de RuntimeException ("Stub!") En Android
  • Cómo ocultar el teclado cuando se inicia la actividad
  • La animación al inicio de la actividad omite los marcos
  • Múltiples instancias de actividad y FLAG_ACTIVITY_REORDER_TO_FRONT
  • ¿Cómo puedo arrastrar y soltar con múltiples actividades?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.