2013-08-05 18 views
6

私のアプリケーションでは、ユーザーがボタンを押してから5分待つ必要があります。私はこれがひどいと思うが、それだけで行くと知っている。進行時間バーには、5分間の待機時間が残ります。asynctaskを使用してカウントダウンするプログレスバーを表示するにはどうすればよいですか?

カウントダウンにはテキストビューのCountDownTimerを使用していましたが、私の上司は見た目の良いものを求めていました。したがって、進捗バーの推論。そして、あなたはこのような何かを行うことができ

+0

あなたは 'setProgress()'で好きなように進捗を設定できます。それを更新したいときはいつでもそれを呼び出してください。 – Geobits

+1

設定されている時間が偽のプログレスバーになったら...最後の5分のGIFかもしれない。 – NightSkyCode

+5

'AsyncTask'のドキュメントから... **" AsyncTasksは短時間の操作(理想的には数秒)に理想的に使用するべきです。 "** - 本当に5分のAsyncTaskを実行すべきではありません – Squonk

答えて

33

..

public static final int DIALOG_DOWNLOAD_PROGRESS = 0; 
private ProgressDialog mProgressDialog; 

@Override 
protected Dialog onCreateDialog(int id) { 
    switch (id) { 
    case DIALOG_DOWNLOAD_PROGRESS: 
     mProgressDialog = new ProgressDialog(this); 
     mProgressDialog.setMessage("waiting 5 minutes.."); 
     mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 
     mProgressDialog.setCancelable(false); 
     mProgressDialog.show(); 
     return mProgressDialog; 
    default: 
    return null; 
    } 
} 

進捗状況を更新するために、非同期タスクを書く...

private class DownloadZipFileTask extends AsyncTask<String, String, String> { 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     showDialog(DIALOG_DOWNLOAD_PROGRESS); 
    } 

    @Override 
    protected String doInBackground(String... urls) { 
     //Copy you logic to calculate progress and call 
     publishProgress("" + progress); 
    } 

    protected void onProgressUpdate(String... progress) {   
    mProgressDialog.setProgress(Integer.parseInt(progress[0])); 
    } 

    @Override 
    protected void onPostExecute(String result) {   
     dismissDialog(DIALOG_DOWNLOAD_PROGRESS); 
    } 
} 

これはあなたの目的を解決する必要があり、それは文句を言わないでもUIのトレッドをブロック..

+0

あなたの目的を解決した場合は、その答えを受け入れてください。それは他の人が正解を特定するのに役立ちます。ありがとう – Sushil

+1

AsyncTaskの2番目のパラメータを、進捗状況[0]を整数に解析する必要がない場合よりもIntegerに変更し、単純にpublishProgress(進行状況)を "+ – Nepster

+3

"を廃止して書きます:http://stackoverflow.com/questions// 10285047/showdialog-deprecated-whats-the-alternative –

関連する問題