2011-09-21 59 views
10

我使用AsyncTask和想知道什么是传递参数构造函数,而不是直接将它们的​​调用doInBackground(...)方法,例如的影响:将参数传递给AsyncTask构造函数有什么优点/缺点?

电话:

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 
} 

}

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

谢谢。

+0

简单的经验法则是 - “参数的数量越多,代码可重用的越多” – ingsaurabh

回答

15

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

使用参数​​如果你有相同类型(例如,多个URL作为要任务下载字符串)任意数量。

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

如果你只有一个对象传入(或不传入),那么这两种方法几乎是等价的。

+0

感谢您的智慧adivce – MobileCushion

相关问题