我知道有几个问题与这个问题非常相似,但到目前为止它们都没有帮助我。我仍然无法覆盖此 AsyncTasks。 你能帮帮我吗?
我已经确保 doInBackground() 开发了 onPostExecute() 需要的某种类型(第一个示例中的 bool 值和第二个示例中的 JSON)。
除了我将 AsyncTask 扩展为原始类型之外,你看到了什么吗(不确定要在此处输入什么)
这是 eclipse 告诉我每种方法的错误:
The method onPostExecute(Boolean) of type Register.NetCheck must override or implement a supertype method
对于类(class),eclipse 告诉我:
The type Register.NetCheck must implement the inherited abstract method AsyncTask.doInBackground(Object...)
AsyncTask is a raw type. References to generic type AsyncTask should be parameterized
示例 1:
private class NetCheck extends AsyncTask {
@Override
protected void onPreExecute(){
super.onPreExecute();
do.something();
}
@Override
protected Boolean doInBackground (String... args){
if (do.something.worked){
return true; }
else { return false}
}
@Override
protected void onPostExecute(Boolean th){
evalute.input.boolValue();
}
}
示例 2:
private class ProcessRegister extends AsyncTask {
@Override
protected void onPreExecute() {
super.onPreExecute();
show.some.dialog();
}
@Override
protected JSONObject doInBackground(String... args) {
JSONObject json = generate.some.json();
return json;
}
@Override
protected void onPostExecute(JSONObject json) {
evaluate.something();
}
}
最佳答案
您的异步任务不期望返回值,因此它无法识别
protected void onPostExecute(Boolean th)
试试这个:
private class NetCheck extends AsyncTask<String, Void, Boolean> {
@Override
protected void onPreExecute(){
super.onPreExecute();
do.something();
}
@Override
protected Boolean doInBackground (String... args){
if (do.something.worked){
return true; }
else { return false}
}
@Override
protected void onPostExecute(Boolean th){
evalute.input.boolValue();
}
}
对于第二个示例,将 Boolean 替换为 JSONObject。尝试始终使用IDE自动为您实现方法,将避免出现此类问题。
关于android - 无法覆盖 AsyncTask 类中的 onPostExecute() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28911405/