将参数传递给AsyncTask构造函数的优缺点是什么?

10

我正在使用 AsyncTask,想知道在构造函数中传递参数与直接在 execute() 调用中将它们传递给 doInBackground(...) 方法的影响有什么区别,例如:

调用:

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
}

关于设计、优雅性、重用性和性能方面有什么优缺点?

谢谢。


一个简单的经验法则是 - "参数越多,代码可重用性越高"。 - ingsaurabh
1个回答

15

关于设计、优雅、重用和性能方面的优缺点是什么?

如果您需要任意数量的相同类型参数(例如,多个要下载的URL作为字符串),请使用execute()中的参数。

如果您需要多个不同类型的参数,则可以利用Java的编译时类型安全性,使用构造函数参数。

如果您只需要传递一个(或零)对象,则两种方法几乎等效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接