从线程启用和更新进度条

时间:2013-05-06 03:38:17

标签: android

当我尝试从线程访问它时,不会显示Progressbar,也不会更新进度。我希望只有一个进度微调器显示,直到网络活动完成,这个网络活动只是将一些文本数据发布到服务器。这是我到目前为止的代码,任何帮助表示赞赏谢谢,

 Thread th = new Thread(){
        public void run() {

                     try {
                        sleep(5000);

                         while(cnt < 5000){
                             activty.this.runOnUiThread(new Runnable(){
                                 public void run()
                                 {
                                     ProgressBar pd = (ProgressBar)findViewById(R.id.progressBar1);
                                    pd.setVisibility(0);
                                    pd.setMax(100);

                                     pd.setProgress(cnt);
                                    cnt += 100;
                                 }
                             });
                         }
                     } catch (InterruptedException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
        }

        int cnt = 100;
    };
    th.start();
    `

1 个答案:

答案 0 :(得分:2)

这正是您希望使用AsyncTask的情况,Processes and Threads Guide在单独的线程中处理数据,并包含方法publishProgressonProgressUpdate以更新UI线程上的UI。

{{3}}也有一个如何实现AsyncTask的例子。