抓取asynctask的返回值?

时间:2014-04-07 22:51:26

标签: android android-asynctask return

是否可以获取doInBackground() - 方法的返回值?

JSONArray response = new SupportFunctions.executeURLWithResponse().execute(url);

它告诉我:

Description Resource    Path    Location    Type
Type mismatch: cannot convert from AsyncTask<String,Void,JSONArray> to JSONArray          ContactFunctions.java /BuddyCheck/src/com/pthuermer/buddycheck    line 138    Java Problem

这样的东西?

2 个答案:

答案 0 :(得分:1)

  

是否可以获取doInBackground() - 方法的返回值?

不是你想要的方式。

您可以调用get()方法来阻止当前线程并等待异步工作完成。这通常不是你想要的 - 你特意希望异步完成工作(否则,为什么要AsyncTask?)。

将需要JSONArray响应的代码移动到onPostExecute()本身或移动到onPostExecute()将执行的其他方法。

答案 1 :(得分:0)

您可以使响应成为类或全局变量,然后在异步任务完成时设置变量。你应该做的大部分内容应该是你对onPostExecute的重写。

Get returned JSON from AsyncTask