如何更改AsynTask的返回类型?

时间:2013-02-12 06:13:17

标签: android asynchronous

我对编程非常陌生,我已经像这样扩展了AsynTask类:

private class HttpCalls extends AsyncTask<Void,Void,JSONObject>

我已经覆盖了这样的方法:

protected JSONObject doInBackground(Void... voids) {
     . . .
     return jsonObject;
}

但是当我致电new HttpCalls().execute()时,我希望返回类型为JSONObject,但我得到的是:

AsyncTask<Void,Void,JSONObject>

如何将其更改为JSONObject。提前谢谢。

2 个答案:

答案 0 :(得分:1)

这样做

JSONObject j = new HttpCalls().execute();

实际上不会返回JSONObject。它将返回AsyncTask本身。

您应该在onPostExecute()

中捕获结果
@Override
protected void onPostExecute(JSONObject result) {

    super.onPostExecute(result);

    // Do some stuffs
}

答案 1 :(得分:1)

class YouClass {

public JSONObject result;

   private class HttpCalls extends AsyncTask<Void,Void,JSONObject>
       {
   @Override
   protected void onPostExecute(JSONObject result) {
       super.onPostExecute(result);
               YouClass.result = result;
       } } }