![](/img/trans.png)
[英]Asynctask ArrayList object not passing from doInBackground to onPostExecute
[英]Why my AsyncTask doInBackground() is not passing a value to onPostExecute()?
当我运行我的代码时,它返回值为“ null”
private class MessageActivityLoaderTask extends AsyncTask<Void, Void, Contentlist> {
private LinkedMultiValueMap<String, String> formData;
Activity activity;
public MessageActivityLoaderTask(Activity activity) {
this.activity = activity;
}
@Override
protected void onPreExecute() {
formData = new LinkedMultiValueMap<String, String>();
mProgress.setMessage("Please wait..");
mProgress.show();
}
@Override
protected Contentlist doInBackground(Void... params) {
String url = getString(R.string.base_url) + "/example/example1/1";
Contentlist mess = null;
try {
mess = RestUtils.exchangeFormData(url, HttpMethod.GET, formData, Contentlist.class);
} catch (Exception e) {
e.printStackTrace();
mProgress.dismiss();
}
return mess;
}
protected void onPostExecute(Contentlist result) {
if (result== null) {
Toast message = Toast.makeText(ListobjectsActivity.this, "result is empty", Toast.LENGTH_SHORT);
message.show();
} else {
ListactivityAdapter adapter = new ListactivityAdapter(this.activity, result.getContents());
ListView list = (ListView) activity.findViewById(R.id.account);
list.setAdapter(adapter);
mProgress.dismiss();
}
}`
您的AsyncTask
看起来已正确设置,因此onPostExecute()
将收到doInBackgroun()
返回的ContentList
。 由于onPostExecute()
看到null
,因此doInBackground()
返回null。 这意味着doInBackground()
会获取异常,并且通过陷入catch
或将RestUtils.exchangeFormData()
返回null RestUtils.exchangeFormData()
mess
设置为非null值。
我建议您调试此区域中的代码以查看实际情况。 它不太可能是AsyncTask
问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.