Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


IllegalStateException – Biblioteca de soporte de fragmentos

Tengo un problema serio con mi aplicación continuamente estrellándose en algunos dispositivos de los usuarios con la excepción siguiente en un método del onStart de la actividad:

Caused by: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1299) at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1310) at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:541) at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:525) at android.support.v4.app.DialogFragment.show(DialogFragment.java:123) 

No puedo reproducir este error localmente en mi emulador. He encontrado algunas preguntas sobre este problema en stackoverflow: aquí y aquí

  • MediaPlayer.setDataSource () y prepare () no funciona - android
  • Android - ¿Es posible desactivar el botón de clic de inicio
  • Elemento giratorio simple de Android
  • Error 'No peer certificate' en Android 2.3 pero NO en 4
  • ¿Debe mi aplicación de Android predeterminada a chino simplificado o tradicional?
  • Agregar elementos a ListView, mantener la posición de desplazamiento y NO ver un salto de desplazamiento
  • He probado la solución sugerida, es decir, no permiten los paquetes vacíos en onSaveInstance ni en fragmentos ni actividades.

    Sin embargo, el problema persiste. Este es el único informe de Crash que recibo, y lo obtengo continuamente.

    ¿Alguien tiene una solución de trabajo?

  • "Error al registrar el canal de entrada" - ¿qué causa esto y cómo solucionarlo?
  • Gaveta de navegación (Google+ vs. YouTube)
  • Ver getX () y getY () devuelven 0.0 después de haber sido agregados a la Actividad
  • ¿Cómo cambiar la propiedad y el tamaño de CollapsingToolbarLayout?
  • EditText Alternativas en un Widget? Tiene que haber una forma
  • SimpleCursorAdapter con Secciones en Android
  • 3 Solutions collect form web for “IllegalStateException – Biblioteca de soporte de fragmentos”

    He resuelto este problema por

    Compruebe mi respuesta aquí para el código: "No se puede realizar esta acción después de onSaveInstanceState" – ¿por qué estoy recibiendo esta excepción del método onResume de mi actividad?

    No tengo más IllegalStateException hasta ahora.

    He resuelto esto con esta solución , es decir, poner el código en una función métodos onPostResume() en la actividad

    Lea este artículo.

    Y,

    Éste.

    Una vez que el problema se entiende, seguir adelante y cambiar las cosas correctamente:

    Descubra por qué sus transacciones están ocurriendo fuera de su estado onResume. ¿Por qué suceden estas cosas cuando no deberían serlo? ¿Por qué está agregando y eliminando fragmentos manualmente con respecto al ciclo de vida de la aplicación en lugar de cuando el usuario solicita. Usted debe tal vez necesita una vez en el onCreate () o cuando el usuario invoca algo. ¿Pero por qué estás jugando con ellos en onResume () en primer lugar? No lo hagas.

    Si cambia todos los .commit() a .commitAllowStateLoss() entonces los bloqueos desaparecerán. Pero, es mejor que no lo hagas. Es mejor asegurarse de que nunca cambia sus fragmentos, excepto cuando la aplicación está completamente en vivo. A veces eso significa que nunca se carga un fragmento de OnActivityResult () sino que se marca para ejecutarse en onPostResume (), y se evita la realización de cambios de interfaz de usuario en subprocesos asincrónicos que asumen erróneamente que no se pudo haber matado la actividad mientras tanto.

    Si sólo quieres spackle todo, .commitAllowStateLoss() lo hará. Si quieres hacerlo bien, asegúrate de no tocar tus fragmentos después de que las cosas mueran.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.