我正在使用 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
}
在设计、优雅、重用和性能方面有哪些优点/缺点?
谢谢。
最佳答案
What are the advantages/disadvantages regarding design, ellegance, reuse and performance??
如果您有任意数量的相同类型(例如,多个 URL 作为您希望任务下载的字符串),请使用 execute()
的参数。
如果您有多个不同类型的参数,请使用构造函数参数,这样您就可以利用 Java 的编译时类型安全性。
如果您只有一个对象要传入(或没有),这两种方法几乎是等价的。
关于android - 将参数传递给 AsyncTask 构造函数有哪些优点/缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7498557/