android - 无法覆盖 AsyncTask 类中的 onPostExecute() 方法

标签 android android-asynctask return return-value

我知道有几个问题与这个问题非常相似,但到目前为止它们都没有帮助我。我仍然无法覆盖此 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/

相关文章:

java - onPostExecute 未运行

android - 如何从共享菜单中排除您自己的应用程序?

Android:如何使用 Volley 从方法返回异步 JSONObject?

android - 无法解析主机 "<insert URL here>"没有与主机名关联的地址

java - 减少方法中返回语句的数量

c++ - 如果 bool 为 false,则停止程序在 C++ 中运行

android - 将文本 "ellipsized"绘制到 Canvas

android - 为什么我无法从 Android native 应用程序登录以测试 Facebook 用户帐户?

android - 如何使 ViewPager2 对滑动不那么敏感?

arrays - C 数组问题在不同平台上显示不同结果