How to cancel a handler?

2

I have this Code

final Handler handler = new Handler();
final Runnable r = new Runnable() {
                public void run() {
                    if (garagem.isChecked()!= luzgaragem){
                        garagem.setChecked(luzgaragem);
                        //Quando chegar aqui parar tudo

                    }else {
                        handler.postDelayed(this, 1000);
                        System.out.println("estou aqui");
                    }
                }
            };
            handler.postDelayed(r, 1000);

How can I create a loop and stop it when true?

    
asked by anonymous 03.03.2015 / 14:00

1 answer

2

You can use the following code within run() :

while(true) {
  if(garagem.isChecked() != luzgaragem) {
    garagem.setChecked(luzgaragem);
    wait(); //Quando quiser que ele volte a executar, basta executar um notify ou notifyAll
  } else {
    handler.postDelayed(this, 1000);
    System.out.println("estou aqui");
  }
}
    
03.03.2015 / 14:06