由于互联网质量不佳,异步任务被执行了2次-

时间:2018-06-28 16:02:11

标签: android asynchronous task

我在Android Studio中有一个异步任务,如下所述从服务器发送和接收数据。

 private class myTask extends AsyncTask<Void, Void, Integer> {
        Exception excepccion;

        protected void onPreExecute() {
           super.onPreExecute();
Mensaje.mensajeConectandoseSicoy(actMetodoPago,getString(R.string.msg_conexion_sicoy));
        }
        
        @Override
        protected Integer doInBackground(Void... params) {
        try {
                return new Servidor().guardarObtnerInfoServidorSicoy(ACCION_PAGAR_PEDIDO);
            } catch (Exception e2) {
                excepccion = e2;
                return -1;
            }
        }
        
          @Override
        protected void onPostExecute(Integer respuesta) {
         Mensaje.detenerMensajeConectandoseSicoy();
...
        }

位置:

    public static void mensajeConectandoseSicoy(Context context, String mensaje){
        pd = new ProgressDialog(context);
        pd.setMessage(mensaje);
        pd.setCancelable(false);

        Handler pdCanceller = new Handler();
        pd.show();


    }
    public static void detenerMensajeConectandoseSicoy(){
        if (pd.isShowing()){
            pd.dismiss();
        }
    }

在用户报告问题并发现其互联网质量很差之前,此过程非常有效。

任务在onPostExecute上运行时,即服务器已经响应时,将在onPreExecute上再次执行,这将引发一系列错误。

我通过放置布尔类型标志变量来解决此问题,以避免出现问题。

我的问题是:

有没有一种更好的控制方法?

0 个答案:

没有答案