我对Android dev很新,所以今天我在android docs
中偶然发现了这段代码Result doInBackground (Params... params)
Params...
的含义是什么?它与Params
相同吗?但是当使用Params
(没有......)时,它会抛出错误而不是覆盖抽象。
这让我很困惑。
答案 0 :(得分:7)
这是一个Java概念,称为var args
。作为方法参数传递某种类型的数组是糖语法。
所以当你说
时Result doInBackground (Integer... args)
{
Integer [] vals=args;
}
您可以访问该数组中的值。
就AsyncTask的方法而言,您可以将参数类型从Params
更改为您需要的类型。 Params
只是您需要在实施过程中更改的模板。
答案 1 :(得分:1)
答案 2 :(得分:1)
AsyncTask是一个有三种方法的类。在OnPreExecute()之后调用DoInBackground()。在某些情况下,onPreExecute可能会返回一些值。 doInBackground()可以使用Params字段捕获此值。 这个参数可以是Int,Strings,Collection,Context。
注意:与onPOstExecute(Params params)类似。此参数是doInBackground中返回的值。
如果你没有任何值可以返回,那么你不需要在这些方法中使用params值。
答案 3 :(得分:1)
Params...
这里指的是参数。 ...
是表示数组的一种方式。
Result doInBackground (Params... params)
这意味着params
是Params
类型的数组。默认情况下,函数doInBackground
接收的值存储在params[0]
中。有时函数在执行时可能会收到另一个值,它将存储在更高的索引中。
希望能解决你的问题: - )