AsyncTask <string,void,=“”void =“”>如何工作?</string,>

时间:2012-10-03 09:42:13

标签: android android-layout android-asynctask

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

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()只是执行那里写的代码。

提前致谢!

5 个答案:

答案 0 :(得分:15)

只返回null。

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

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

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

答案 1 :(得分:6)

我认为你必须使用&#34;返回null;&#34;而不只是&#34; return;&#34;,因为Void是一个围绕平常&#34; void&#34;值。

答案 2 :(得分:5)

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
}
} 

答案 3 :(得分:4)

AsyncTask就像这样工作

  

onPreExecute - &gt; doInBackGround - &gt; onPostExecute

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

答案 4 :(得分:0)

doInBackGround返回空值

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

在fororid

中检查此Android dev doc是否有异步任务