【问题标题】:How does AsyncTask<String, Void, Void> work?AsyncTask<String, Void, Void> 是如何工作的?
【发布时间】:2012-10-03 09:42:12
【问题描述】:

谁能告诉我这里出了什么问题?

public class BackgroungTask extends AsyncTask<String, Void, Void> {

    public Void doInBackground(String... params) {
       //tasks
       return;  //error occurs here!
    }

    public void onPostExecute(Void result) {
        //codes
    }
}

上述类不依赖于返回值。所以 onPostExceute() 只需执行其中编写的代码。

提前致谢!

【问题讨论】:

标签: android android-layout android-asynctask


【解决方案1】:

只返回null。

public class BackgroungTask extends AsyncTask<String, Void, Void> {

    public Void doInBackground(String... params) {
       //tasks
       return null; 
    }

    public void onPostExecute(Void result) {
        //codes
    }
}

【讨论】:

    【解决方案2】:

    我认为你必须使用“return null;”而不仅仅是“return;”,因为Void 是一个围绕通常“void”值的类。

    【讨论】:

      【解决方案3】:

      doInBackGround 中返回 null,因为 Void 是一个对象(不 = void)..

      public class BackgroungTask extends AsyncTask<String, Void, Void> {
      
      public Void doInBackground(String... params) {
         //tasks
         return null;  //error occurs here!
      }
      
      public void onPostExecute(Void result) {
          //codes
      }
      } 
      

      【讨论】:

      • 你还应该解释为什么你必须在那里返回null
      • 同意@Luksprog,这不是答案。
      • 就是这样工作的!好吧,如果这不是一个答案,那么正确的答案是什么?
      【解决方案4】:

      AsyncTask 是这样工作的

      onPreExecute -> doInBackGround -> onPostExecute

      忽略progressUpdates 等,一旦doInBackGround 完成,控制就转到onPostExecute。一个简单的 return 会中断此流程,从而导致错误。要解决此问题,请替换为 return null,因为它是无效的。 return 语句的参数作为参数传递给 onPostExecute,你可以通过它来查看它是否成功。

      【讨论】:

        【解决方案5】:

        doInBackGround 返回空值

        public class BackgroungTask extends AsyncTask<String, Void, Void> {
         ....
         ....
        }
        

        检查这个Android dev doc 以了解andorid 中的异步任务

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-12-16
          • 1970-01-01
          • 2022-10-17
          相关资源
          最近更新 更多