當我打電話給我的AsyncTask時,doInBackground運行,但onPostExecute從未被調用。 Eclipse並不是在抱怨@Override
或AsyncTask中的任何參數,所以我不確定問題是什麼。誰能告訴我問題是什麼?Android AsyncTask not calling onPostExecute
調用的AsyncTask:
new AsyncDataFetcher(this).execute(productInfoUrls);
productInfoUrls
是一個網址列表。
的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;
}
}
}
我建議你添加一些日誌記錄,並檢查你的logcat輸出,看看發生了什麼。 – Squonk
我錯了'i ++'需要'i ++'沒有空格。只是做了測試應用程序,並與空間工作良好。 – ObieMD5
不好的方法。 :(。這段代碼需要很長時間才能完成。你的jsonList爲空。 – Luc