Mostrar un DialogFragment una vez y sólo una vez
Quiero mostrar un DialogFragment al usuario cuando se llama una devolución de llamada dada. Mi problema es que a veces las llamadas múltiples al oyente se hacen en el mismo momento y el fragmentmanager muestra más de un fragmento, estoy usando el código siguiente
if (getSupportFragmentManager().findFragmentByTag("testFragment") == null) { getSupportFragmentManager().beginTransaction() .add(new MyFragment(), "testFragment") .commit(); Log.e("TAG", "Show! "+(getSupportFragmentManager() .findFragmentByTag("testFragment") == null)); }
Como muestra el mensaje de registro en la última línea, después de cometer el FragmentTransaction hay un corto período de tiempo donde findFragmentByTag devuelve null. Por lo tanto, hay alguna manera de garantizar sólo mostrar el mensaje una vez más elegante que el ahorro de la mili-tiempo de la última llamada a cometer e ignorando las llamadas posteriores en un segundo, por ejemplo?
- Got "java.lang.IllegalStateException: Fragmento ya activo" cuando el diseño no está vacío
- Fragmento vs. FragmentoActividad
- NullPointerException android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState
- Compatibilidad del edificio PreferenceFragment en Android
- No se puede cambiar el identificador de contenedor del fragmento SupportMapFragment
- ¿La duración especificada en una animación definida por XML es realmente en milisegundos?
- ANDROID: ViewPager con diferentes fragmentos en el método instantiateItem
- Cómo crear un diseño con pestañas en Android 4.0?
- Transición de elementos compartidos no funciona
- Fragmentos: Eliminar todos los fragmentos en una vista
- ¿Cómo puedo restaurar un Fragmento visualizado anteriormente?
- ¿Por qué se crea un FrameLayout extra para fragmentos?
- Barra de Acción Contextual con DialogFragment
Llamar a getSupportFragmentManager().executePendingTransactions()
justo después de commit debe obligar al gestor de fragmentos a confirmar el fragmento inmediatamente para que las llamadas posteriores a findFragmentByTag("testFragment")
ya no devuelvan null.