Android 从线程启用和更新progressbar

Android 从线程启用和更新progressbar,android,Android,当我尝试从线程访问Progressbar或更新进度时,Progressbar将不会显示。我希望在网络活动完成之前显示一个进度微调器,此网络活动只是将一些文本数据发布到服务器。这是我迄今为止的代码,非常感谢您的帮助,谢谢 Thread th = new Thread(){ public void run() { try { sleep(5000);

当我尝试从线程访问Progressbar或更新进度时,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();
    `
Thread th=新线程(){
公开募捐{
试一试{
睡眠(5000);
而(cnt<5000){
activty.this.runOnUiThread(新的Runnable(){
公开募捐
{
ProgressBar pd=(ProgressBar)findViewById(R.id.progressBar1);
pd.setVisibility(0);
pd.setMax(100);
pd.setProgress(cnt);
cnt+=100;
}
});
}
}捕捉(中断异常e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
int cnt=100;
};
th.start();
`

这正是您希望使用的情况,它在单独的线程中处理数据,并包含方法
publishProgress
onProgressUpdate
在UI线程上更新UI


还有一个示例说明了如何实现异步任务。

您是否检查了xml?可能其他视图没有为progressbar留出足够的空间。您的眼光也不错,我可能忽略了这一点。有没有办法创建一个通用的asynctask类,或者我必须为我必须在活动中执行的每个网络活动创建一个类。@kabuto178试试这个,您可以根据请求更改doInBackground中的代码,即获得或post@kabuto178-
AsyncTask
的doInBackground可以接受参数,因此,例如,如果唯一的区别是需要下载的文件,则可以将其传递到AsyncTask中并重新使用:
new NetworkAsyncTask().execute(urlToDownload)
例如,一个任务需要返回位图,另一个任务需要在my中返回JSONObjectcase@kabuto178-那么听起来两个任务似乎更合适。