AsyncTask には非常に興味深いメソッドがありますtask.execute(Params... params)
たとえば、URL をダウンロードします。
new DownloadTask(context).execute(url);
new DownloadTask(context, url).execute();
Param とコンストラクターのどちらを選択すればよいでしょうか。
AsyncTask には非常に興味深いメソッドがありますtask.execute(Params... params)
たとえば、URL をダウンロードします。
new DownloadTask(context).execute(url);
new DownloadTask(context, url).execute();
Param とコンストラクターのどちらを選択すればよいでしょうか。
質問者としては、コンストラクターの方が優れていると思います。
理由:
new Task(String url)
対execute(String... params)
再利用にあいまいさはありません。多くの新しいアンドロイドは次のように書いています:
DownloadTask task = new DownloadTask();
task.execute(url);
task.execute(url2);
しかし、これは間違っています。 AsyncTask Javadoc
タスクは 1 回だけ実行できます (2 回目の実行を試みると、例外がスローされます)。
コンパイル時にエラーを検出します。
@Override
protected String doInBackground(String... params) {
String url = params[0];
return download(url);
}
パラメータnew Task().exec();
が欠落している場合、実行時に NPE が発生します。
パラメータの使用は避けるべきだと思います。