为什么根据 eclipse 这不是有效的:
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 的变化吗?我真的很想向 publishProgress 传递一个字符串和 int。这可能吗:
publishProgress("Starting Validation", 10);
TIA
最佳答案
确保您在泛型参数中声明了正确的类型,例如:
new AsyncTask()<Void, Integer, Void>{ ...
AsyncTask<Params, Progress, Result>
:
- 参数:
doInBackground()
的类型的和execute()
var-args 参数。 - 进度
publishProgress()
的类型的和onProgressUpdate()
的 var-args 参数。 - 结果
doInBackground()
的类型的返回值,onPostExecute()
的参数,onCancelled()
的参数,和get()
的返回值。
关于java - 发布进度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15072123/