2011-10-17 10 views

Respuesta

2

Is parece que se comprueba el interior de aplicación:

public void dismiss() { 
    if (Thread.currentThread() != mUiThread) { 
     mHandler.post(mDismissAction); 
    } else { 
     mDismissAction.run(); 
    } 
} 

private void dismissDialog() { 
    if (mDecor == null || !mShowing) { 
     return; 
    } 

    try { 
     mWindowManager.removeView(mDecor); 
    } finally { 
     mDecor = null; 
     mWindow.closeAllPanels(); 
     onStop(); 
     mShowing = false; 

     sendDismissMessage(); 
    } 
} 
8

No debe tener que comprobar si está mostrándose como que lo desecha. Si no marca isShowing, simplemente ignorará el descarte() que la barra de progreso no muestra.

Pero la comprobación de isShowing es una buena práctica. Entonces no va a doler seguir comprobando.

0

Si sólo tiene un lugar en su código que, cuando dismiss() se llama, entonces no. Debería saber si el diálogo se muestra o no en ese momento.

Sin embargo, he tenido algunos problemas con ProgressDialogs y cambio de orientación, lo que ha provocado la necesidad de tener más de un lugar donde el diálogo podría ser descartado, lo que hace necesaria la verificación isShowing().

0

verificación de la source code, si se maneja de código que no tiene que preocuparse. Si no se realiza ningún manejo, es su elección crear un entorno más riesgoso pero rápido o lento pero seguro.

Cuestiones relacionadas