为什么根据日食无效:
protected String doInBackground(String... arg0) {
publishProgress(10);
if(true){
//validate with DB
}else{
//send to registration screen
}
return null;
}
//Update Progress
protected void onProgressUpdate(Integer... values) {
mProgress.setProgress(values[0]);
}
Eclipse正在这样说:
publishProgress(10); <<publishProgress(Void) is not acceptable for type publishProgress(Int)
然而,此处的其他问题表明它以确切的方式使用。这是API的变化吗?我真的想传递一个字符串和int的publishProgress。这可能吗:
publishProgress("Starting Validation", 10);
TIA
答案 0 :(得分:17)
确保在通用参数中声明正确的类型,例如:
new AsyncTask()<Void, Integer, Void>{ ...
AsyncTask<Params, Progress, Result>
:
doInBackground()
和execute()
var-args参数的类型。publishProgress()
的类型和onProgressUpdate()
的var-args参数。doInBackground()
的返回值类型,onPostExecute()
的参数,onCancelled()
的参数和get()
' s返回值。