-1

我对编程很陌生,我已经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. 提前致谢。

4

2 回答 2

1

这样做

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

实际上不会返回一个JSONObject. 它将返回一个AsyncTask自身。

你应该在onPostExecute()

@Override
protected void onPostExecute(JSONObject result) {

    super.onPostExecute(result);

    // Do some stuffs
}
于 2013-02-12T06:15:11.283 回答
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;
       } } }
于 2013-02-12T06:15:39.270 回答