【问题标题】:What are the advantages/disadvantages on passing arguments to the AsyncTask constructor?将参数传递给 AsyncTask 构造函数的优点/缺点是什么?
【发布时间】:2011-11-21 20:24:09
【问题描述】:

我正在使用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
}

}

在设计、优雅、重用和性能方面有哪些优点/缺点?

谢谢。

【问题讨论】:

  • 简单的经验法则是——“args 的数量越多,代码可重用性越高”

标签: android android-asynctask performance


【解决方案1】:

在设计、优雅、重用和性能方面有哪些优点/缺点??

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

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

如果您只有一个对象要传入(或没有),那么这两种方法几乎是等效的。

【讨论】:

    猜你喜欢
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2015-10-11
    相关资源
    最近更新 更多