2011-12-10 46 views
0

有人能告訴我爲什麼我的代碼不工作嗎?我想顯示一個ProgressDialog,但下面的代碼的問題是它不會出現,即使它花了很多時間處理函數ConsultaComercio。我見過很多例子,但我不明白我做錯了什麼。我感謝您的幫助。提前致謝。Android的ProgressDialog不起作用

pd = ProgressDialog.show(this, "", "Loading...", true); 
Toast.makeText(getApplicationContext(), "Cargando.... " + String.valueOf(numero_prueba), Toast.LENGTH_SHORT).show(); 

new Thread() { 
    public void run() { 
     try{ 
      // Do some Fake-Work 
      ConsultaComercio(); 
      numero_prueba=60000; 
     } catch (Exception e) { } 
     // Dismiss the Dialog 
     pd.dismiss(); 
    } 
}.start(); 

回答

1

您不能從任何線程更新UI。它必須是AsyncTask

1

在你的onCreate()做到這一點,

Handler handler=new Handler() 
{ 

    public void handleMessage(Message msg) 
{ 
    if(pd.isShowing()) 
{ 
    pd.dismiss(); 
} 
}; 

,改變你的線程這樣,

Toast.makeText(getApplicationContext(), 「Cargando ......」 +將String.valueOf( ),Toast.LENGTH_SHORT).show();

 new Thread() { 
      public void run() { 
        try{ 
          // Do some Fake-Work 
        ConsultaComercio(); 
        numero_prueba=60000; 
        } catch (Exception e) { } 
        // Dismiss the Dialog 
       handler.sendEmptyMessage(0); 
      } 
     }.start();