private void doPost(MKPoiInfo signpoi2) { String name = signpoi2.name; GeoPoint p = signpoi2.pt; int x = p.getLatitudeE6(); int y = p.getLongitudeE6(); if (mPostTask != null && mPostTask.getStatus() == GenericTask.Status.RUNNING) { return; } else { mPostTask = new PostTask(); mPostTask.setListener(mPostTaskListener); TaskParams params = new TaskParams(); params.put("name", name); params.put("x", String.valueOf(x)); params.put("y", String.valueOf(y)); mPostTask.execute(params); } } private void onPostBegin() { // disablePost(); dialog = ProgressDialog.show(this, "", "正在提交,请稍候!", true); dialog.setCancelable(true); } private void onPostSuccess() { dialog.dismiss(); // updateProgress(""); // shout_poto_imageview.setImageBitmap(null); Toast.makeText(this, "签到成功!", Toast.LENGTH_SHORT).show(); } private void onPostFailure(String reason) { Toast.makeText(this, reason, Toast.LENGTH_SHORT).show(); if (dialog != null) { dialog.dismiss(); } // enablePost(); } private class PostTask extends GenericTask { private String msg = "发送失败,可能遇到网络故障!"; public String getMsg() { return msg; } @Override protected TaskResult _doInBackground(TaskParams... params) { TaskParams param = params[0]; publishProgress("正在提交,请稍候..."); try { String x = param.getString("x"); String y = param.getString("y"); String name = param.getString("name"); String res = GalaApplication.mApi.post(name, x, y); } catch (HttpException e) { Log.e(TAG, e.getMessage(), e); Throwable cause = e.getCause(); // Maybe null if (cause == null) { if (e instanceof HttpRefusedException) { msg = e.getMessage(); }else if(e instanceof HttpServerException){ msg=e.getMessage(); } } else if (cause instanceof HttpAuthException) { // Invalid userName/password msg = ((HttpRefusedException) cause).getError() .getMessage(); } else { msg = getString(R.string.login_status_network_or_connection_error); } publishProgress(msg); return TaskResult.FAILED; } return TaskResult.OK; } } private TaskListener mPostTaskListener = new TaskAdapter() { @Override public void onPreExecute(GenericTask task) { onPostBegin(); } @Override public void onProgressUpdate(GenericTask task, Object param) { // updateProgress((String) param); } @Override public void onPostExecute(GenericTask task, TaskResult result) { if (result == TaskResult.OK) { onPostSuccess(); } else { onPostFailure(((PostTask) task).getMsg()); } } @Override public String getName() { // TODO Auto-generated method stub return "Login"; } }; private GenericTask mPostTask; private ProgressDialog dialog;?
?