No se puede realizar esta acción después de onSaveInstanceState – DialogFragment
He overriden el onSavedInstanceState y quitado el súper, no estoy haciendo ninguna transacción, mucho menos transacciones en funciones volátiles o async.
Lo llamo en una devolución de llamada personalizada 'onUserExistsListener'
- Android: limitar los fragmentos de carga con una viewPager
- DialogFragment anidado múltiple de Android
- La animación de fragmento de ocultación no se reproduce
- La aplicación se bloquea en rotación sin stackTrace
- ¿Cómo puedo hacer que WRAP_CONTENT funcione en un RecyclerView
@Override public Boolean userExists(Boolean exists) { if (exists) { } else { AlertDialogFragment Frag = AlertDialogFragment.newInstance(0, null); Frag.show(getSupportFragmentManager(), "warndialog"); } };
¿Han intentado todo lo sugerido en las otras preguntas de SO y todavía no encontraron ninguna solución? ¿Nadie?
código:
AlertDialogFragment Frag = AlertDialogFragment.newInstance(0, null); Frag.show(getSupportFragmentManager(), "warndialog");
El proceso:
OnCreate: (función LoadNames)
LoadNames Callback -> Mostrar diálogo.
Promover:
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); add_name_to_db(); }
función:
public void add_name_to_db() { Details.checkNameExists(user_txt.getText().toString()); Details.setOnUserExistsListener(new onUserExistsListener() { @Override public Boolean userExists(Boolean exists) { if (exists) { } else { runOnUiThread(new Runnable() { @Override public void run() { AlertDialogFragment Frag = AlertDialogFragment.newInstance(0, null); Frag.show(getSupportFragmentManager(), "warndialog"); } }); } } else { Toast.makeText(getApplicationContext(), "This is not a valid KIK username", Toast.LENGTH_SHORT).show(); } return exists; } }); }
- Fragmentos retenidos con IU y fugas de memoria
- Después de la rotación, onCreate () Fragmento se llama antes onCreate () FragmentActivity
- La transición de entrada en un fragmento con un elemento compartido se dirige al elemento compartido
- ¿Cómo volver al fragmento anterior de la actividad?
- ¿Cómo cambiar la actividad en el botón de navegación inferior?
- Cómo instalar la última versión de ADT plug-in para eclipse
- Cómo implementar la vista de búsqueda en la actividad (barra de acciones) cuando existe la vista de lista en el fragmento
- Ejemplo de servicio de primer plano
Llamando a Frag.show(getSupportFragmentManager(), "warndialog");
, De hecho está realizando una transacción fragmentada (ver show () ).
Si se ha llamado el método onSaveInstanceState () de la actividad, se lanzará una IllegalStateException cuando intente mostrar el diálogo. Debe cambiar el código para asegurarse de que cuando muestre el fragmento de diálogo, lo haga después de restaurar el estado de actividad (es decir, onPostResume ()). Vea esta entrada del blog para más información.
También puede comprometer la transacción permitiendo la pérdida del estado;
EDIT: Debe llamar a la super.onCreate (SavedInstanceState) en onCreate (). Simplemente no funcionará sin él.
OnSaveInstanceState () se produce cuando la actividad está terminando. Es demasiado tarde para parar y mostrar la interfaz de usuario.
¿Cuándo desea que se ejecute este código? ¿Cuando el botón de la parte posterior es presionado quizá?
Ponga su código en onBackPressed () para eso.
Android: forma correcta de utilizar onBackPressed () con Toast
EDITAR Si desea que el código se ejecute al inicio de una actividad, como menciona en otro comentario. No utilice onSaveInstanceState (). Pon tu código en onCreate () o onResume ().
Dependiendo de cómo está funcionando su devolución de llamada, es posible que deba ejecutar esas líneas de código en el subproceso de interfaz de usuario, como esto:
runOnUiThread(new Runnable() { public void run() { AlertDialogFragment Frag = AlertDialogFragment.newInstance(0, null); Frag.show(getSupportFragmentManager(), "warndialog"); } });
- Eclipse no está generando apk archivo para cualquier aplicación desarrollada en ella?
- Android grabación de micrófono a ByteArray sin guardar archivo de audio