Stop or cancel asynctask

0

I made this code for my asynctask but it does not work, it simply continues the process and not the error.

public class Act_Poco_Pombal extends AppCompatActivity  implements View.OnClickListener {
private Button btnFechar;
private Button btn_Atualizar;
private TextView tvNomeComunicacao;
private ImageView ImgSinal;
private ImageView ImgStatus;
private TextView tvNomeStatus;
private TextView tvNomePresenca;
private ImageView ImgPresenca;
private TextView tvNomeFalha;
private ImageView Imgfalha;
private TextView tvNomeEnergia;
private ImageView ImgEnergia;
TextView minutes, seconds;
Integer minutos = 3;
CountDownTimer timer;
MinhaTask mt;
final String LOG_TAG = "myLogs";

String Aguardanando = "Aguardando Recepção";
String Recepcao = "Recepção OK";
String Falha = "Falha na Recepção";
String PresencaAc = "Sensor Invasão Atuado";
String PresencaN = "Sensor Invasão Desarmado";
String FalhaAc = "Sobrecarga Motor";
String FalhaN = "Rearme Sobrecarga";
String StatusAc = "Ligado";
String StatusN = "Desligado";
String EnergiaAc = "Falta Enegia Eletrica";
String EnergiaN = "Enegia Eletrica Restabelecida";
String FalhaCon = "Não foi possivel se conectar ao banco de dados";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.act__poco__pombal);

    btnFechar = (Button) findViewById(R.id.btnFechar);
    btnFechar.setOnClickListener(this);
    btn_Atualizar = (Button) findViewById(R.id.btn_Atualizar);
    btn_Atualizar.setOnClickListener(this);
    tvNomeComunicacao = (TextView) findViewById(R.id.tvNomeComunicacao);
    ImgSinal = (ImageView) findViewById(R.id.ImgSinal);
    ImgStatus = (ImageView) findViewById(R.id.ImgStatus);
    ImgPresenca = (ImageView) findViewById(R.id.ImgPresenca);
    tvNomePresenca = (TextView) findViewById(R.id.tvNomePresenca);
    Imgfalha = (ImageView) findViewById(R.id.ImgFalha);
    tvNomeFalha = (TextView) findViewById(R.id.tvNomeFalha);
    tvNomeStatus = (TextView) findViewById(R.id.tvNomeEstado);
    ImgEnergia = (ImageView) findViewById(R.id.ImgEnergia);
    tvNomeEnergia = (TextView) findViewById(R.id.tvNomeEnergia);
    ProgressBar progress = (ProgressBar) findViewById(R.id.progress);
    minutes = (TextView)findViewById(R.id.minutes);
    seconds = (TextView)findViewById(R.id.seconds);
    minutes.setText("" + minutos);

    tvNomeComunicacao.setText("Conectando-se ao banco de dados");
    tvNomeComunicacao.setTextColor(Color.parseColor("#FFFEED04"));
    ImgSinal.setVisibility(View.INVISIBLE);
    tvNomeEnergia.setText("Conectando-se ao banco de dados");
    tvNomeEnergia.setTextColor(Color.parseColor("#FFFEED04"));
    ImgEnergia.setVisibility(View.INVISIBLE);
    tvNomeFalha.setText("Conectando-se ao banco de dados");
    tvNomeFalha.setTextColor(Color.parseColor("#FFFEED04"));
    Imgfalha.setVisibility(View.INVISIBLE);
    tvNomePresenca.setText("Conectando-se ao banco de dados");
    tvNomePresenca.setTextColor(Color.parseColor("#FFFEED04"));
    ImgPresenca.setVisibility(View.INVISIBLE);
    tvNomeStatus.setText("Conectando-se ao banco de dados");
    tvNomeStatus.setTextColor(Color.parseColor("#FFFEED04"));
    ImgStatus.setVisibility(View.INVISIBLE);

        mt = new MinhaTask(this, progress) ;
        mt.execute();

}

public class  MinhaTask extends AsyncTask<Object, Object, String> {

    private ProgressBar progressBar;
    private int total = 0;
    private int PROGRESSO = 25;
    String nomeEnergia;
    String nomeComunicacao;
    String nomePresenca;
    String nomeFalha;
    String nomeAcionamento;


    public MinhaTask(Context context, ProgressBar progressBar) {

        this.progressBar = progressBar;
        progressBar.getIndeterminateDrawable().setColorFilter(0xFF36F3DD, android.graphics.PorterDuff.Mode.MULTIPLY);

    }

    @Override
    protected void onPreExecute() {

        super.onPreExecute();
        Log.d(LOG_TAG, "Begin");
    }

    protected void onCancelled() {
        super.onCancelled();
        Log.d (LOG_TAG, "cancelar resultado:" + mt.cancel (false));

    }

    @Override
    protected String doInBackground(Object... params) {

        try {

            Thread.sleep(1000);

            for (int i = 0; i <= params.length; i++) {
                publishProgress();
                Thread.sleep(1000);

                Dao__PcPombal dao__pcPombal = new Dao__PcPombal();


                nomeEnergia = dao__pcPombal.nomeTabela();
                nomeComunicacao = dao__pcPombal.nomeTabela2();
                nomePresenca = dao__pcPombal.nomeTabela3();
                nomeFalha = dao__pcPombal.nomeTabela5();
                nomeAcionamento = dao__pcPombal.nomeTabela6();

                if (isCancelled()) {

                    Log.d(LOG_TAG, "isCancelled: " + isCancelled());

                    break;

                }

            }


        } catch (InterruptedException e) {
            Log.d(LOG_TAG, "Interrupted");
            e.printStackTrace();
        }


        return null;
    }


    @Override
    protected void onProgressUpdate(Object... values) {

            total += PROGRESSO;
            progressBar.incrementProgressBy(PROGRESSO);
            super.onProgressUpdate(values);


        tvNomeComunicacao.setText("Conectando-se ao banco de dados");
        tvNomeComunicacao.setTextColor(Color.parseColor("#FFFEED04"));
        ImgSinal.setVisibility(View.INVISIBLE);
        tvNomeEnergia.setText("Conectando-se ao banco de dados");
        tvNomeEnergia.setTextColor(Color.parseColor("#FFFEED04"));
        ImgEnergia.setVisibility(View.INVISIBLE);
        tvNomeFalha.setText("Conectando-se ao banco de dados");
        tvNomeFalha.setTextColor(Color.parseColor("#FFFEED04"));
        Imgfalha.setVisibility(View.INVISIBLE);
        tvNomePresenca.setText("Conectando-se ao banco de dados");
        tvNomePresenca.setTextColor(Color.parseColor("#FFFEED04"));
        ImgPresenca.setVisibility(View.INVISIBLE);
        tvNomeStatus.setText("Conectando-se ao banco de dados");
        tvNomeStatus.setTextColor(Color.parseColor("#FFFEED04"));
        ImgStatus.setVisibility(View.INVISIBLE);
    }

    @Override
    protected void onPostExecute(String result) {

        if (nomeComunicacao.equals(Aguardanando)) {

            tvNomeComunicacao.setTextColor(Color.parseColor("#FFFEED04"));
            tvNomeComunicacao.setText("" + "Aguardando Recepção");
            ImgSinal.setImageResource(R.drawable.samarelo);


        } else if (nomeComunicacao.equals(Recepcao)) {

            tvNomeComunicacao.setTextColor(Color.parseColor("#FF60FB07"));
            tvNomeComunicacao.setText("" + " Recepção OK");
            ImgSinal.setImageResource(R.drawable.sverde);

        } else if (nomeComunicacao.equals(Falha)) {

            tvNomeComunicacao.setTextColor(Color.parseColor("#FFFC120E"));
            tvNomeComunicacao.setText("" + "Falha na Recepção");
            ImgSinal.setImageResource(R.drawable.svermelho);


        } else if (nomeComunicacao.equals(FalhaCon)) {

            tvNomeComunicacao.setTextColor(Color.parseColor("#FFFC120E"));
            tvNomeComunicacao.setText("" + " Não foi possivel se conectar ao banco de dados");

        }

        if (nomePresenca.equals(PresencaN)) {

            tvNomePresenca.setTextColor(Color.parseColor("#FF60FB07"));
            tvNomePresenca.setText("" + " Sensor Invasão Desarmado");
            ImgPresenca.setImageResource(R.drawable.presencaon);

        } else if (nomePresenca.equals(PresencaAc)) {

            tvNomePresenca.setTextColor(Color.parseColor("#FFFC120E"));
            tvNomePresenca.setText("" + "Sensor Invasão Atuado");
            ImgPresenca.setImageResource(R.drawable.presenca);


        } else if (nomePresenca.equals(FalhaCon)) {

            tvNomePresenca.setTextColor(Color.parseColor("#FFFC120E"));
            tvNomePresenca.setText("" + " Não foi possivel se conectar ao banco de dados");

        } else if (nomePresenca.isEmpty()) {

            tvNomePresenca.setTextColor(Color.parseColor("#FF60FB07"));
            tvNomePresenca.setText("" + " Sensor Invasão Desarmado");
            ImgPresenca.setImageResource(R.drawable.presencaon);

        }

        if (nomeFalha.equals(FalhaN)) {

            tvNomeFalha.setTextColor(Color.parseColor("#FF60FB07"));
            tvNomeFalha.setText("" + " Rearme Falha");

        } else if (nomeFalha.equals(FalhaAc)) {

            tvNomeFalha.setTextColor(Color.parseColor("#FFFC120E"));
            tvNomeFalha.setText("" + "Falha Motor");
            Imgfalha.setImageResource(R.drawable.falhaon);


        } else if (nomeFalha.equals(FalhaCon)) {

            tvNomeFalha.setTextColor(Color.parseColor("#FFFC120E"));
            tvNomeFalha.setText("" + " Não foi possivel se conectar ao banco de dados");

        } else if (nomeFalha.isEmpty()) {

            tvNomeFalha.setTextColor(Color.parseColor("#FF60FB07"));
            tvNomeFalha.setText("" + " Rearme Falha");
        }

        if (nomeEnergia.equals(EnergiaN)) {

            tvNomeEnergia.setTextColor(Color.parseColor("#FF60FB07"));
            tvNomeEnergia.setText("" + " Enegia Eletrica Ok");
            ImgEnergia.setImageResource(R.drawable.energiaon);

        } else if (nomeEnergia.equals(EnergiaAc)) {

            tvNomeEnergia.setTextColor(Color.parseColor("#FFFC120E"));
            tvNomeEnergia.setText("" + "Falta Enegia Eletrica");
            ImgEnergia.setImageResource(R.drawable.energiaoff);

        } else if (nomeEnergia.equals(FalhaCon)) {

            tvNomeEnergia.setTextColor(Color.parseColor("#FFFC120E"));
            tvNomeEnergia.setText("" + " Não foi possivel se conectar ao banco de dados");

        } else if (nomeEnergia.isEmpty()) {

            tvNomeEnergia.setTextColor(Color.parseColor("#FF60FB07"));
            tvNomeEnergia.setText("" + " Enegia Eletrica OK");
            ImgEnergia.setImageResource(R.drawable.energiaon);
        }

        if (nomeAcionamento.equals(StatusN)) {

            tvNomeStatus.setTextColor(Color.parseColor("#FFFC120E"));
            tvNomeStatus.setText("" + " Poço Desligado");
            ImgStatus.setImageResource(R.drawable.pocooff);

        } else if (nomeAcionamento.equals(StatusAc)) {

            tvNomeStatus.setTextColor(Color.parseColor("#FF60FB07"));
            tvNomeStatus.setText("" + "Poço Ligado");
            ImgStatus.setImageResource(R.drawable.pocon);


        } else if (nomeAcionamento.equals(FalhaCon)) {

            tvNomeStatus.setTextColor(Color.parseColor("#FFFC120E"));
            tvNomeStatus.setText("" + " Não foi possivel se conectar ao banco de dados");

        } else if (nomeAcionamento.isEmpty()) {

            tvNomeStatus.setTextColor(Color.parseColor("#FFFC120E"));
            tvNomeStatus.setText("" + " Poço Desligado");
            ImgStatus.setImageResource(R.drawable.pocooff);

        }

        progressBar.setVisibility(ProgressBar.INVISIBLE);
        startCounter();

        super.onPostExecute(result);
        Log.d(LOG_TAG, "End");
    }
}

private void startCounter() {

    timer = new CountDownTimer(61000, 1000) {

        @Override
        public void onTick(long millisUntilFinished) {

            if((millisUntilFinished / 1000) < 10){
                seconds.setText("0" + (millisUntilFinished / 1000) );
            }

            else if((millisUntilFinished / 1000) == 61){
                seconds.setText("00");
            }

            else{
                seconds.setText("" + (millisUntilFinished / 1000) );
            }
        }

        @Override
        public void onFinish() {

            if(minutos == 0){
                timer.cancel();
                   Atualiza();
            }
            else{
                minutos--;

                if(minutos < 10){
                    minutes.setText("0" + minutos );

                }

                else{
                    minutes.setText("" + minutos );
                }
                startCounter();
            }

        }
    }.start();
}

private void Atualiza() {

    ProgressBar progress = (ProgressBar) findViewById(R.id.progress);
    minutos = 3;
    new MinhaTask(this, progress).execute();
}

public void onClick (View v) {

    switch (v.getId()) {
        case R.id.btn_Atualizar:
            Atualiza();
        case R.id.btnFechar:
            mt.onCancelled();
            mt.cancel(true);
            mt.isCancelled();

            break;
        default:
            break;
    }
        finish();
    }
}
    
asked by anonymous 18.07.2016 / 15:55

1 answer

0

To cancel / stop an AsyncTask simply call the cancel method

mt = new MinhaTask(this, progress) ;
mt.execute(); // Inicia a task
mt.cancel(true); // Cancela a task
    
21.07.2016 / 18:30