2012-04-09 1 views
0

버튼을 클릭 할 때 아래 코드를 사용하여 진행률 막대를 만들었습니다. 하지만 버튼을 클릭 한 후 진행 막대를 시작하려면 지연을 줄이기 위해 진행률 bar.how를 표시하는 데 2-3 초가 걸립니다.디스플레이 진행률 표시 줄의 지연 줄이기

public void getProgressBar() { 

    progressBar = new ProgressDialog(this); 
    progressBar.setCancelable(true); 
    progressBar.setMessage("Loading..."); 
    progressBar.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
    progressBar.show(); 
    progressBarStatus = 0; 

    new Thread(new Runnable() { 
     public void run() { 
      while (progressBarStatus < 100) { 

       progressBarStatus = doSomeTasks();////I am loading service 
       progressBarHandler.post(new Runnable() { 
        public void run() { 
         progressBar.setProgress(progressBarStatus); 
        } 
       }); 
      } 

       if (progressBarStatus >= 100) { 

        progressBar.dismiss(); 
        startActivity(new Intent(getApplicationContext(), 
          StatisticDisplay.class)); 

      } 
     } 
    }).start(); 
} 

답변

0
public class BackgroundAsyncTask extends AsyncTask<Void, Integer, Void> { 

    int myProgress; 

    @Override 
    protected void onPostExecute(Void result) { 
    // TODO Auto-generated method stub 
    } 

    @Override 
    protected void onPreExecute() { 
    // TODO Auto-generated method stub 
    myProgress = 0; 
    } 

    @Override 
    protected Void doInBackground(Void... params) { 
    // TODO Auto-generated method stub 
    while(myProgress<100){ 
    myProgress++; 
    publishProgress(myProgress); 
     SystemClock.sleep(100); 
    } 
    return null; 
    } 

    @Override 
    protected void onProgressUpdate(Integer... values) { 
    // TODO Auto-generated method stub 
    progressBar.setProgress(values[0]); 
    } 
} 
+1

링크가 끊어졌습니다. – Kedar

+0

@Kedar 그건 내 잘못이 아니야. –

0

대신 AsyncTask을 사용하십시오. 링크의 예제 코드는이를 수행하는 방법에 대한 좋은 소개를 제공합니다. 본질적으로 doInBackground()에서 작업을 수행하고 onProgressUpdate()를 사용하여 진행 상황을 게시하고 onPostExecute()에서 activiy을 시작하십시오.

+0

그러나 여기에서 문제는 2 ~ 3 sec.I는 더미 진행률 표시 줄을 시도 후 나는 심지어는 그 어떤 행동을하고 있지 내가 진행률 표시 줄을 표시하려면 버튼을 클릭하지만이 표시에 진행 표시 줄을 표시하는 단지 시도이다 지체. – thej