0

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

 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();
    `
4

1 回答 1

2

这正是您想要使用AsyncTask的情况,它在单独的线程中处理数据并包含方法publishProgressonProgressUpdate在 UI 线程上更新您的 UI。

Processes and Threads Guide也有一个如何实现 AsyncTask 的示例。

于 2013-05-06T03:42:19.157 回答