【发布时间】:2014-02-12 05:56:24
【问题描述】:
嗨 onCancel 对话框我想取消对服务器的调用,但我面临的问题是,即使我取消任务,它也会访问我的服务器并修改数据。我该如何解决这个问题?下面是我的代码..
私有类 UserBoardingTask 扩展 AsyncTask { @Override 受保护的无效onPreExecute(){ progressDialog = new ProgressDialog(getActivity()); progressDialog.setMessage(getResources().getString(R.string.please_wait)); progressDialog.setIndeterminate(false); progressDialog.setCancelable(true); progressDialog.setOnCancelListener(new OnCancelListener() { @Override 公共无效onCancel(DialogInterface对话框){ if (userOnBoardingTask!= null && userOnBoardingTask.getStatus() != AsyncTask.Status.FINISHED && !userOnBoardingTask.isCancelled()) { userOnBoardingTask.cancel(true); } } }); 进度对话框.show(); } @Override 受保护的无效doInBackground(字符串... urls){ 字符串登机URL=null; 登机网址= getUrl(); UserOnBoardingDTO userOnBoardingDetailsDTO = AppStateManager.getUserBoardingDetails(); 尝试{ RestAPIManager.putToNSWebService(boardingURL, userOnBoardingDetailsDTO, username, password); } 捕获(异常 e){ errorMessage=getResources().getString(R.string.unknown_exp); } 返回空值; } @Override 受保护的无效 onCancelled() { super.onCancelled(); closeProgressDialog(); 错误消息=""; AppStateManager.setUserBoardingDetails(null); userOnBoardingTask=null; } @Override 受保护的无效onPostExecute(无效资源){ closeProgressDialog(); userOnBoardingTask=null; if(!FieldsValidator.isBlank(errorMessage)){ CommonUtil.showToast(getActivity(),errorMessage); 错误消息=""; 返回; }【问题讨论】: