有兩種方法將參數傳遞給一個AsyncTask
類型安全的替代方案中的AsyncTask
- 定義第一個泛型參數和使用列表這種類型化的/陣列,並使之通過
- 執行參數通過構造函數傳遞所有必要的參數,將它們存儲在一個領域和
execute
我覺得第一種方法更具有可讀性訪問它們,但有時缺乏靈活性類型安全方面,對於實例如果你想傳遞一個字符串,一個整數和一個布爾值,似乎不清楚如何處理這個問題。
public Result doInBackground(String... params) {
String param1 = params[0];
int param2 = Integer.valueOf(params[1]);
boolean param3 = Boolean.valueOf(params[2]);
// ...
}
字符串解析,把它在一個Bundle
等總有一個解決方案,但我覺得這是令人討厭但從語義/方法簽名點。任何替代品?
我使用構造函數的方法。並且沒有什麼能阻止你在AsyncTask上定義另一個方法(或一組方法)以另一種方式收集數據(例如,給它一個流暢的構建器樣式的API)。 – CommonsWare