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

标签 android android-asynctask performance

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

相关文章:

没有 Google Play 的 Android Admo

php - 使用 Facebook 登录作为移动应用程序的身份验证。

java - 从 AsyncTask 返回 4 个列表

java - JTable 调用自定义单元格渲染器方法...连续

javascript - 如何在html中使用可缓存的json

java - Android Studio 无法检测到 JDK7 或更新版本

java - 降低 double

android - 如何使用单独的线程来执行http请求

java - 无法从 AsyncTask 启动 WebView

performance - 使用条件语句加速 Python 嵌套循环