Android 无法正确显示进度条

Android 无法正确显示进度条,android,android-asynctask,android-activity,Android,Android Asynctask,Android Activity,我想在活动中显示一个进度条,作为对按钮单击的响应。 我在另一个问题中读到,我应该使用async task来显示/不显示进度条,但当我单击按钮时,进度条没有正确显示(显示的时间比应该显示的时间少得多) 有什么建议吗 活动代码: public void chooseContactFromList(View view){ ProgressBar pBar = (ProgressBar) findViewById(R.id.progressBar1); circleActivity progressTa

我想在活动中显示一个进度条,作为对按钮单击的响应。 我在另一个问题中读到,我应该使用async task来显示/不显示进度条,但当我单击按钮时,进度条没有正确显示(显示的时间比应该显示的时间少得多) 有什么建议吗

活动代码:

public void chooseContactFromList(View view){
ProgressBar pBar = (ProgressBar) findViewById(R.id.progressBar1);
circleActivity progressTask = (circleActivity) new   circleActivity(pBar).execute();

AlertDialog.Builder builder = new AlertDialog.Builder(this);
CharSequence[] cs=nameList.toArray(new CharSequence[nameList.size()]);
builder.setTitle("Make your selection");
    builder.setItems(cs, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int item) {
            reciverNumber = phoneList.get(item);
        }
    });
    AlertDialog alert = builder.create();
    alert.show();
    progressTask.cancel(true);
}
异步任务代码:

public class circleActivity extends AsyncTask<Void, Void, Void> {
private ProgressBar progressBar; 

public circleActivity(ProgressBar pBar) {
    progressBar=pBar;
}

protected void onPreExecute() {
    // TODO Auto-generated method stub
    super.onPreExecute();
    progressBar.setVisibility(View.VISIBLE);
}

@Override
protected void onPostExecute(Void result) {
    progressBar.setVisibility(View.INVISIBLE);
}


@Override
protected void onProgressUpdate(Void ... progress) {

}

@Override
protected Void doInBackground(Void... arg0) {
    // TODO Auto-generated method stub
    return null;
}
公共类circleActivity扩展异步任务{
私人ProgressBar ProgressBar;
公共电路活动(ProgressBar pBar){
progressBar=pBar;
}
受保护的void onPreExecute(){
//TODO自动生成的方法存根
super.onPreExecute();
progressBar.setVisibility(View.VISIBLE);
}
@凌驾
受保护的void onPostExecute(void结果){
progressBar.setVisibility(View.INVISIBLE);
}
@凌驾
受保护的void onProgressUpdate(void…progress){
}
@凌驾
受保护的Void doInBackground(Void…arg0){
//TODO自动生成的方法存根
返回null;
}
}


谢谢

因为您在
doInBackground()
中什么也不做,所以进度条只会显示几分钟。如果您确实想查看它,请尝试在
doInBackground()
中执行一些操作,这将需要一些时间

例如,尝试
Thread.sleep(1000)在doInBackground中进行测试

我建议你参考以下链接