Estoy usando showDialog()
y dismissDialog()
para mostrar los cuadros de diálogo de progreso en mi aplicación. Se movió desde la creación del cuadro de diálogo y llamando al show()
para usarlo para guardar el estado al cambiar la orientación.Android - descartar el diálogo no descarta el diálogo
Pero cuando cambio la orientación de vertical-> horizontal-> vertical, el dismissDialog()
ya no se cierra el cuadro de diálogo. El diálogo permanece ahí todo el tiempo y necesito presionar el botón Atrás para que desaparezca.
¿Alguna razón por la que se comportaría de esa manera?
Editar
Para superar este problema, he intentado añadir un removeDialog()
en onDestroy()
para que el diálogo no ha sido creada/aparece dos veces y antes del cambio de orientación, se retira el diálogo. añadiendo intentado declaraciones de registro y ver lo que sucede
05-21 12:35:14.064: DEBUG/MyClass(193): *************callingShowDialog
05-21 12:35:14.064: DEBUG/MyClass(193): *************onCreareDialog
05-21 12:35:15.385: DEBUG/MyClass(193): *************onSaveInstanceState
05-21 12:35:15.415: DEBUG/MyClass(193): *************onDestroy
05-21 12:35:15.585: DEBUG/MyClass(193): *************callingShowDialog
05-21 12:35:15.585: DEBUG/MyClass(193): *************onCreareDialog
05-21 12:35:15.715: DEBUG/MyClass(193): *************onCreareDialog
05-21 12:35:17.214: DEBUG/MyClass(193): *************onSaveInstanceState
05-21 12:35:17.214: DEBUG/MyClass(193): *************onDestroy
05-21 12:35:17.275: ERROR/WindowManager(193): android.view.WindowLeaked: Activity com.android.MyClass has leaked window [email protected] that was originally added here
05-21 12:35:17.395: DEBUG/MyClass(193): *************callingShowDialog
05-21 12:35:17.395: DEBUG/MyClass(193): *************onCreareDialog
05-21 12:35:17.475: DEBUG/MyClass(193): *************onCreareDialog
Si vemos aquí, en un principio, cuando se visualiza la actividad, el onCreateDialog se llama una vez y en el cambio de la orientación, onSaveInstanceState y OnDestroy se llaman.
Pero después de eso, onCreateDialog se llama dos veces (una vez por una llamada a showDialog que hago, pero ¿por qué la segunda vez?) Y esto sucede cada vez que cambio la orientación de aquí en adelante.
¿Alguna idea de por qué sucede eso?
Gracias de nuevo
Puede alguien por favor me ayude con este problema? He visto muchas publicaciones y blogs sobre este tema, pero ninguno parece tener una solución que funcione. – lostInTransit