2011-03-02 55 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