0

ProgressValue( で onPostExecute() を渡す) がどのようにAsyncTask表すか。その値は何に依存しますか?

4

2 に答える 2

1

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
}
于 2012-04-23T10:41:15.987 に答える
1

ということonProgressUpdate()ですか?

進捗値は任意です。達成率のプログレス バーを表示する場合は、0 ~ 100 の範囲の整数を使用できます。テキスト メッセージを表示する場合は、文字列を渡します。

バックグラウンド操作の特定の時点で、publishProgress()送信したい任意の値 (整数、文字列など) で呼び出します。これはメイン スレッドのメソッドに渡されるonProgressUpdate()ため、必要に応じて UI に値を表示できます。

実行する作業の量と操作の進行状況 (バックグラウンド操作がループで実行されている可能性があります) がわかっている場合は、ループの反復ごとに、残りの作業量のパーセンテージとして進行状況を公開できます。 .

バックグラウンド タスクに一連の個別の操作が含まれている場合は、「データの読み込み中」、「レポートの準備中」などのメッセージを送信する必要があるかもしれません。

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

于 2012-04-23T10:27:27.237 に答える