2011-03-02 76 views
0
new Thread() { 
    public void run() { 
     try { 
      Progress.setMessage("Scanning Apps ..."); 
      int CurrentNumber = 0; 
      while (CurrentNumber <= 99) { 
      Progress.setProgress(CurrentNumber); 
      Progress.setMessage(CurrentNumber + ""); 
      sleep(100); 
      CurrentNumber ++; 
     } catch (Exception e) { 
     } 
    } 
}.start(); 

所以..這個代碼不工作:(幾個setMessage更新(進度)

我在做什麼錯?

沒有Progress.setMessage(CurrentNumber + "");這是工作完美...

回答

0

我假設Progress是ProgressDialog的一個實例,你只能在UI(主)線程上更新UI。閱讀關於線程和開發者界面site

+0

當我只更改消息之一,它的工作對我正合適...... 但是,當我在一個循環做到這一點的循環總是停在中間做... – Karl 2011-03-02 20:46:15

+0

可以只修改UI線程上的用戶界面,這意味着你不應該像你這樣做。閱讀我發佈的鏈接文章。 – 2011-03-02 20:50:56

1

嘗試查看處理進度更新的AsyncTask,讓您有機會在UI線程上設置進度消息。

2

寫入處理程序 例如,

private Handler handler = new Handler() { 
     @Override 
     public void handleMessage(Message msg) { 
      //set message here 
     } 
     }; 
+0

你可以添加更多的細節/解釋嗎? – feeela 2012-10-16 11:01:55

+0

費拉請看這個鏈接:http://crodrigues.com/updating-the-ui-from-a-background-thread-on-android/ – pawarlg 2012-10-25 13:05:09