[英]Type-safe alternative for execute parameters in AsyncTask
有兩種方法可以將參數傳遞給AsyncTask
execute()
傳遞 execute
訪問它們 我發現第一種方法更具可讀性,但是有時在類型安全性方面缺乏靈活性,例如,如果要傳遞String,Integer和Boolean,似乎不清楚如何實現此方法。
public Result doInBackground(String... params) {
String param1 = params[0];
int param2 = Integer.valueOf(params[1]);
boolean param3 = Boolean.valueOf(params[2]);
// ...
}
字符串分析,將其放在Bundle
等中。總有解決方案,但是從語義/方法簽名的角度來看,這是令人不快的。 有其他選擇嗎?
為什么不創建一個類持有者作為例子
static Class Holder {
int i;
String s;
boolean b;
}
public Result doInBackground(Holder... params) {
Holder holder = params[0];
String holder.s;
// ...
}
然后通過execute()將它發送到doBackground()。當我想發送到Web時,我做了很多次
這只是松鼠的一個例子。 希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.