2012-04-09 16 views
0

ボタンのクリック方法で以下のコードを使用してプログレスバーを作成しました。ボタンをクリックした後、プログレスバーを表示するには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()であなたの活動を開始します。

+0

が、ここでの問題は、私はちょうど私がプログレスバーを表示するボタンをクリックするが、sec.Iが、それも任意のアクションをされてやっていないダミーのプログレスバーを試してみました2-3後には、表示上のプログレスバーを表示しようとしています遅れを取る。 – thej

関連する問題