如何从doInBackground()方法返回JSONObject到AsyncTask上的onPostExecute()方法?
在Android应用程序中,我想从doInBackground()
方法返回JSONObject到onPostExecute()
方法。
这是代码:
private class AddAsyncTask extends AsyncTask { JSONObject jsonObjRecv; String result; @Override protected JSONObject doInBackground(JSONObject... params) { AssetObj assetObj = new AssetObj(); assetObj.setAssetName(txtname.getText().toString()); assetObj.setMobileNo(txtmobile.getText().toString()); assetObj.setOwnerId(myApp.getOwnerId()); assetObj.setStartTime(startTime.getText().toString()); assetObj.setEndTime(endTime.getText().toString()); assetObj.setInterval(interval.getText().toString()); JSONObject jsonObjRecv = SyncService.AddNewAssetRequest(assetObj); return jsonObjRecv; } protected void onPostExecute(JSONObject obj){ if(obj != null) { //do something }
我试过这段代码我得到了错误。 是否可以从doInBackground()
方法返回JSONObject到onPostExecute()
方法?
编辑:
这可以帮到你,
private class AddAsyncTask extends AsyncTask { JSONObject jsonObjRecv; String result; @Override protected JSONObject doInBackground(String... params) { AssetObj assetObj = new AssetObj(); assetObj.setAssetName(txtname.getText().toString()); assetObj.setMobileNo(txtmobile.getText().toString()); assetObj.setOwnerId(myApp.getOwnerId()); assetObj.setStartTime(startTime.getText().toString()); assetObj.setEndTime(endTime.getText().toString()); assetObj.setInterval(interval.getText().toString()); JSONObject jsonObjRecv = SyncService.AddNewAssetRequest(assetObj); } protected void onPostExecute(JSONObject obj){ if(obj != null) { //do something }
这是明确的,
private class AddAsyncTask extends AsyncTask
可能你不需要在方法声明中更改返回值和参数。
只需创建以下行
private class AddAsyncTask extends AsyncTask
将根据您提到的参数和返回类型自动创建方法
private class AddAsyncTask extends AsyncTask
对于AsyncTask
将T3
传递为JSONObject
好的,现在仔细看看,
private class AddAsyncTask extends AsyncTask
在AsyncTask中,第三个参数是String
因此将其更改为JSONObject
。
喜欢,
private class AddAsyncTask extends AsyncTask
代替
private class AddAsyncTask extends AsyncTask
改成
private class AddAsyncTask extends AsyncTask
实际代码
private class AddAsyncTask extends AsyncTask { JSONObject jsonObjRecv; String result; @Override protected JSONObject doInBackground(JSONObject... params) { AssetObj assetObj = new AssetObj(); assetObj.setAssetName(txtname.getText().toString()); assetObj.setMobileNo(txtmobile.getText().toString()); assetObj.setOwnerId(myApp.getOwnerId()); assetObj.setStartTime(startTime.getText().toString()); assetObj.setEndTime(endTime.getText().toString()); assetObj.setInterval(interval.getText().toString()); JSONObject jsonObjRecv = SyncService.AddNewAssetRequest(assetObj); } protected void onPostExecute(JSONObject obj){ if(obj != null) { //do something } } }
AsyncTask <参数,进度,结果>
- 参数,执行时发送给任务的参数类型。
- 进度,后台计算期间发布的进度单元的类型。
- 结果,后台计算结果的类型