AsyncTask有一个非常古怪的方法task.execute(Params... params)
例如,下载网址:
new DownloadTask(context).execute(url);
new DownloadTask(context, url).execute();
我们应该如何选择Param或构造函数?
答案 0 :(得分:0)
作为提问者,我认为构造函数更好。
原因:
new Task(String url)
vs execute(String... params)
重用没有含糊之处。很多新的android都会写:
DownloadTask task = new DownloadTask();
task.execute(url);
task.execute(url2);
但这是错误的。 AsyncTask Javadoc
该任务只能执行一次(如果尝试第二次执行则会抛出异常。)
在编译时检测错误。
@Override
protected String doInBackground(String... params) {
String url = params[0];
return download(url);
}
缺少参数new Task().exec();
的人将在运行时获得NPE。
我认为我们应该避免使用参数。