我有一個AsyncTask,它可以完成一些工作並返回一個布爾值。如何先執行然後從AsyncTask返回值?
private class SyncSaleable extends AsyncTask<ItemSaleable, Void, Boolean>{
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
pDialog = new ProgressDialog(ChooseState.this);
pDialog.setMessage("Please wait...");
pDialog.setCancelable(false);
pDialog.show();
}
@Override
protected Boolean doInBackground(ItemSaleable... params) {
// TODO Auto-generated method stub
JSONObject syncJSON = userFunctions.setToSaleable(params[0]);
if(syncJSON.has("success"))
return true;
return false;
}
@Override
protected void onPostExecute(Boolean result) {
// TODO Auto-generated method stub
if (pDialog.isShowing())
pDialog.dismiss();
}
我不知道我目前正在執行這個正確的方法。我爲什麼,我說,這是因爲onPreExecute
和onPostExecute
沒有執行,因爲在缺少對話的進展這樣
boolean state = new SyncTransToDealer().execute(item).get();
if(state){
//Do some work here
}
執行此。
.execute(item).get()的含義是什麼; ?? – Riser
我從這裏提出的一個問題中看到它,它返回了我從AsyncTask中需要的布爾值。我需要看看米歇爾在下面提出的建議 –