2011-04-27 84 views
3

誰能告訴我,爲什麼下面的對話框不顯示,直到異步線程完成。我無法弄清楚這一點。這是在主UI線程中運行的。不知道爲什麼一個新的線程會影響到主UI線程非同步線程停止主UI線程

   dialog = new ProgressDialog(this); 

       dialog.show(); 

       new Thread(new Runnable() { 
        public void run() { 
         while(imageLoader.isProcessing()) {} 
         doSomething(); 
        } 
       }).run(); 

回答

9

你需要調用start()方法匿名線程的,而不是run()方法的流程。

docs

公共無效的start():使該線程開始執行; Java虛擬機會調用此線程的運行方法。

+0

我應該知道這個..謝謝。 – akupun 2011-04-27 12:05:36

0

不要指望線程按照你的代碼流。我建議使用的AsyncTask和顯示對話框中可以顯示onPreExecute(對話)和onPostExecute(刪除)

或可能是你想嘗試runOnUiThread()