当我调用AsyncTask时,doInBackground被执行,但是之后onPostExecute没有被调用。Eclipse没有抱怨AsyncTask中的@Override
或任何参数,所以我不确定问题在哪里。有人能告诉我问题在哪里吗?
调用AsyncTask:
new AsyncDataFetcher(this).execute(productInfoUrls);
productInfoUrls
是一个URL列表。
AsyncTask:
private static class AsyncDataFetcher extends AsyncTask<List<String>, Void, List<JSONObject>> {
Context context;
public AsyncDataFetcher(Context context) {
this.context = context;
}
@Override
protected List<JSONObject> doInBackground(List<String>... urls) {
List<JSONObject> jsonList = new ArrayList<JSONObject>();
JSONParser json_parse = new JSONParser();
for (int i = 0; i < urls[0].size(); i ++) {
jsonList.add(json_parse.getJSONFromUrl(urls[0].get(i)));
}
return jsonList;
}
@Override
protected void onPostExecute(List<JSONObject> jsonList) {
if(jsonList != null){
productInfoParser.Parse(jsonList);
loaded = true;
}
}
}
i ++
需要改成没有空格的i++
。但是我刚刚制作了一个测试应用程序,发现带有空格也可以正常工作。 - ObieMD5