2012-04-23 10 views

答えて

1

あなたはAsyncTaskクラスを作成するとき、あなたはパラメータ、進捗状況や結果の種類を指定することがあります。

private class MyTask extends AsyncTask<ParamType, ProgressType, ResultType> { ... } 

あなたはプログレスバーを更新するために進捗値を使用したい場合は、私は整数を使用することをお勧めしますあなたのクラス宣言は次のようになりますので、:

private class MyTask extends AsyncTask<ParamType, Integer, ResultType> { ... } 

次の呼び出しは、doInBackground()からどこかでなされるべきである。

publishProgress(progress_value); // progress_valus is integer 

とあなたのonProgressUpdate()メンバーは次のようになります。

protected void onProgressUpdate(Integer... values) { 
    super.onProgressUpdate(values); 
    dialog.setProgress(values[0]); // dialog is the ProgressDialog 
} 
1

onProgressUpdate()を意味しますか?

進捗値は任意です。パーセンテージ・コンプリート・プログレス・バーを表示する場合は、0..100の範囲の整数を使用できます。テキストメッセージを表示する場合は、Stringを渡します。

バックグラウンド操作の特定の時点で、送信する値(整数、文字列など)を使用してpublishProgress()に電話してください。これはメインスレッドのonProgressUpdate()メソッドに渡されるので、必要に応じてUIの値を表示することができます。

操作の量と操作の程度(ループ操作でバックグラウンド操作が実行されている可能性がある場合)がわかっている場合は、ループの各繰り返しで、作業量のパーセンテージとしてパブリッシュできます行かなければならない。

バックグラウンドタスクにさまざまな操作が含まれている場合は、「データの読み込み」、「レポートの準備」などのメッセージを送信することができます。

どの値を送信するのか、どのように計算するのかはあなた次第です。

+0

値とどのように渡す方法は? 。バックグラウンドプロセスの長さをカバーするために進捗値を制御する方法は? – Adham

関連する問題