将参数传递给AsyncTask构造函数有哪些优点/缺点?

时间:2011-09-21 10:56:54

标签: android android-asynctask performance

我正在使用AsyncTask并想知道将参数传递给构造函数的含义是什么,而不是直接在execute()调用doInBackground(...)方法上传递它们,例如:< / p>

呼叫:

new SomeTask(bitmap, integer, "somestring").execute();

类别:

public class SomeTask extends AsyncTask<Void, Void, String> {
private String string;
private Bitmap image;
private int integer;

public SomeTask (Bitmap bmp, int someint, String s){
    this.image = bmp;
    this.string = s;
    this.integer = someint;
}

protected String doInBackground(Void... params) {       
    // whatever
    return "string";
}

@Override
protected void onPostExecute(String result){
    // whatever
}

}

有关设计,优雅,重复使用和性能的优点/缺点是什么?

谢谢。

1 个答案:

答案 0 :(得分:15)

  

关于设计,优雅,重用和性能的优点/缺点是什么?

如果您将拥有相同类型的任意数字(例如,您希望任务下载的多个URL作为字符串),请将参数用于execute()

如果您有多个不同类型的参数,请使用构造函数参数,这样您就可以利用Java的编译时类型安全性。

如果您只有一个对象可以传入(或者没有),则两种方法都非常相同。