2013-08-26 2 views
0

버튼 클릭에 대한 응답으로 진행률 표시 줄을 내 활동에 표시하려고합니다. 나는 비동기 작업을 사용하여 진행률 표시 줄을 표시하거나 표시하지 않는 다른 질문을 읽었지만 진행률 표시 줄이 제대로 표시되지 않는다면 (훨씬 적은 시간 동안 나타납니다) 제안 사항 ? 진행 표시 줄을 제대로 표시 할 수 없습니다.

은 활동 코드 :

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); 
} 

AsyncTask를 코드 :

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; 
} 

}

감사

답변

0

당신이 doInBackground()에서 아무것도하지 않고있다으로는, ProgressBar의가에 대해 표시됩니다 잠시만. 정말로보고 싶다면 doInBackground()에서 몇 가지 작업을 시도하십시오. 어느 정도 시간이 걸릴 것입니다.

예 : 테스트하려면 doInBackground에 Thread.sleep(1000);을 시도하십시오.

다음 링크를 참조하시기 바랍니다.

  1. http://www.vogella.com/articles/AndroidBackgroundProcessing/article.html
  2. http://developer.android.com/reference/android/os/AsyncTask.html
+0

그래, 나 바보 감사합니다! –

관련 문제