[英]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.