1

以下のコードのこの部分は<String, Void, Bitmap>どういう意味ですか? この構文が何と呼ばれているのかもわかりません。

private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {

}



元のコードは次のとおりです (ここから見つかります: http://developer.android.com/guide/components/processes-and-threads.html ):

public void onClick(View v) {
    new DownloadImageTask().execute("http://example.com/image.png");
}

private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
    /** The system calls this to perform work in a worker thread and
      * delivers it the parameters given to AsyncTask.execute() */
    protected Bitmap doInBackground(String... urls) {
        return loadImageFromNetwork(urls[0]);
    }

    /** The system calls this to perform work in the UI thread and delivers
      * the result from doInBackground() */
    protected void onPostExecute(Bitmap result) {
        mImageView.setImageBitmap(result);
    }
}
4

3 に答える 3

6
AsyncTask<String, Void, Bitmap>

AsyncTask を使用する場合、AsyncTask が 3 つの異なる型 (最初のパラメーターとして String、2 番目のパラメーターとして Void、3 番目のパラメーターとして Bitmap) によって記述されることを伝えます。

これはJava ではGenericsと呼ばれ、Java5 以降で導入されました。ジェネリックについてさらに理解するには、このチュートリアルをお読みください。Android AsyncTasktask がジェネリックを使用する方法に関するjavadocを次に示します。

更新: AsyncTask javadoc から

1) Params, the type of the parameters sent to the task upon execution.
2) Progress, the type of the progress units published during the background computation.
3) Result, the type of the result of the background computation.
于 2012-11-05T18:33:34.557 に答える
2

それはと呼ばれGenericsます。AsyncTaskマニュアルの詳細は次のとおりです。

非同期タスクで使用される3つのタイプは次のとおりです。

パラメータ、実行時にタスクに送信されるパラメータのタイプ。

プログレス、バックグラウンド計算中に公開されたプログレスユニットのタイプ。

結果、バックグラウンド計算の結果のタイプ。すべてのタイプが非同期タスクによって常に使用されるわけではありません。

タイプを未使用としてマークするには、タイプVoidを使用します。

つまりAsyncTask<String, Void, Bitmap>AsyncTask --DownloadImageTaskはパラメータをとして受け入れStringProgressタイプはunusedであり、結果を次のように返します。Bitmap

于 2012-11-05T18:38:53.983 に答える
0

AsyncTask はジェネリック クラスです。ジェネリックの構文とセマンティクスを理解するには、ジェネリックのチュートリアルを参照する必要があります。

AsyncTask ドキュメントを見ると、これらの各パラメーターの意味がわかります。

  • 1 つ目は「params」としてマークされ、doInBackground メソッドが受け入れるタイプです。
  • 2 番目は、onProgressUpdate メソッドで取得される、進行状況を示すために使用されるタイプです。
  • 3 番目は、タスクの結果の型であり、doInBackground から返され、onPostExecute によって受信される型です。
于 2012-11-05T18:36:38.647 に答える