2011-09-21 56 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

相關問題