2011-01-20 11 views
6

Voglio aprire una ProgressDialog quando clicco sulla voce di elenco che apre i dati dell'elemento selezionato dal servizio Web. La ProgressDialog deve essere visualizzata fino a quando il WebContent dell'elemento selezionato non viene aperto.ProgressDialog licenziamento in android

Conosco il codice di utilizzo del dialogo di avanzamento ma non so come respingerlo in particolare.

Ho sentito che Handler deve essere utilizzato per chiudere la finestra di dialogo Progress ma non ho trovato alcun esempio valido per l'utilizzo dell'handler in definitiva.

Qualcuno può dirmi come posso utilizzare il gestore per chiudere la finestra di dialogo avanzamento?

Grazie, David

risposta

14

Hi questo è ciò che si vuole

 public void onClick(View v) 
     { 
      mDialog = new ProgressDialog(Home.this); 
      mDialog.setMessage("Please wait..."); 
      mDialog.setCancelable(false); 
      mDialog.show(); 
      new Thread(new Runnable() 
      { 
       @Override 
       public void run() 
       { 
        statusInquiry(); 
       } 
      }).start(); 
     } 

Ecco l'webservice web che si chiama

void statusInquiry() 
{ 
    try 
    { 
     //calling webservice 
        // after then of whole web part you will send handler a msg 
     mHandler.sendEmptyMessage(10); 
    } 
    catch (Exception e) 
    { 
     mHandler.sendEmptyMessage(1); 
    } 
} 

e qui va codice del gestore

Handler mHandler = new Handler() 
{ 
    public void handleMessage(android.os.Message msg) 
    { 
     super.handleMessage(msg); 

     switch (msg.what) 
     { 
      case 10: 
       mDialog.dismiss(); 
       break; 
        } 
      } 
     } 
}; 
0

Un Solutiion potrebbe essere questo:

ProgressDialog progressDialog = null; 
    // ... 
    progressDialog = ProgressDialog.show(this, "Please wait...", true); 
    new Thread() { 
     public void run() { 
      try{ 
        // Grab your data             
      } catch (Exception e) { } 

      // When grabbing data is finish: Dismiss your Dialog 
      progressDialog.dismiss(); 
     } 
    }.start(); 
+2

che causerà un crash se l'attività viene distrutta prima di arrivare alla 'progressDialog.dismiss()' linea – Warpspace

Problemi correlati