私はこの AsyncTask をいくつかのプロジェクトで使用してきましたが、まだ意味がよくわかりません<String, Void, String>
。これらは、実装されていないメソッドのパラメーターの型を意味しますか? 注文はありますか (それぞれ String、Void、String に対応するメソッドは何ですか)?
3 に答える
Android ドキュメントの AsyncTaskページから:
android.os.AsyncTask<Params, Progress, Result>
非同期タスクで使用される 3 つのタイプは次のとおりです。
Params、実行時にタスクに送信されるパラメーターの型。
Progress、バックグラウンド計算中に発行された進行状況単位のタイプ。
Result、バックグラウンド計算の結果の型。
今、簡単な言葉で私の理解:
Params: (あなたの場合は String) がAsyncTask
取るパラメーターです。execute
メソッドを呼び出すときにこれを渡す必要があります
進行状況: (あなたの場合は Void) は進行状況のタイプです。Void は、使用していないことを意味します。整数の場合、10、20、30 などの値を使用でき、これらを使用して画面に進行状況バーを表示できます。
結果:(あなたの場合は文字列)がAsyncTask
結果として返すものです。あなたは文字列を返しています。必要なオブジェクトを返すことができます。
簡単に言えば、Params がパラメーターで、Result が戻り値の型で、progress が処理の進行状況を示すメソッドのようなものです。
さらに理解するには、このチュートリアルを参照してください。同じページからの引用も役立つ場合があります。
AsyncTask<TypeOfVarArgParams, ProgressValue, ResultValue>
TypeOfVarArgParams は入力として doInBackground() メソッドに渡され、ProgressValue は進捗情報に使用され、ResultValue は doInBackground() メソッドから返され、パラメーターとして onPostExecute() に渡される必要があります。
docs で説明されています:
android.os.AsyncTask<Params, Progress, Result>
非同期タスクで使用される 3 つのタイプは次のとおりです。
Params, the type of the parameters sent to the task upon execution. Progress, the type of the progress units published during the background computation. Result, the type of the result of the background computation.
これらのいずれかが必要ない場合は、パスVoid
します (ただし、常に 3 つのタイプが必要です)。
AsyncTask の 1 番目のパラメーターは doInBackground で渡されるパラメーターを参照し、2 番目のパラメーターは onProgressUpdate で渡され、3 番目のパラメーターは onPostExecute で渡されます。機能ごとに適した任意のデータ型を使用できます。パラメータ タイプ (String、Integer、String) を使用した呼び出しの例を以下に示します。
private class MyTask extends AsyncTask<String, Integer, String>
{
protected String doInBackground(String... u)
{
// do something in background
return null;
}
protected void onPreExecute()
{
// do something before start
}
public void onProgressUpdate(Integer... args)
{
}
protected void onPostExecute(String result)
{
// do something after execution
}
}