ProgressValue
( で onPostExecute() を渡す) がどのようにAsyncTask
表すか。その値は何に依存しますか?
2 に答える
AsyncTask クラスを作成するときに、パラメータのタイプ、progress および result を指定できます。
private class MyTask extends AsyncTask<ParamType, ProgressType, ResultType> { ... }
進行状況の値を使用して進行状況バーを更新する場合は、Integer を使用することをお勧めします。したがって、クラス宣言は次のようになります。
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
}
ということonProgressUpdate()
ですか?
進捗値は任意です。達成率のプログレス バーを表示する場合は、0 ~ 100 の範囲の整数を使用できます。テキスト メッセージを表示する場合は、文字列を渡します。
バックグラウンド操作の特定の時点で、publishProgress()
送信したい任意の値 (整数、文字列など) で呼び出します。これはメイン スレッドのメソッドに渡されるonProgressUpdate()
ため、必要に応じて UI に値を表示できます。
実行する作業の量と操作の進行状況 (バックグラウンド操作がループで実行されている可能性があります) がわかっている場合は、ループの反復ごとに、残りの作業量のパーセンテージとして進行状況を公開できます。 .
バックグラウンド タスクに一連の個別の操作が含まれている場合は、「データの読み込み中」、「レポートの準備中」などのメッセージを送信する必要があるかもしれません。
どの値を送信するか、どのように計算するかは完全にあなた次第です。