Algoritmo de repetição por tempo

Gostaria de saber qual a melhor maneira de fazer com que um dado trecho de um código seja repetido por indeterminadas vezes até que seja interrompido
Exemplo:

Um algoritmo que escreve Hello World a cada 5 minutos enquanto uma determinada variável for TRUE.

Usa um Timer para chamer seu método e coloca um if testando a variável.

O ViniGodoy deu uns exemplos nesse topico, que me ajudaram:

Veja todos posts.

Bom dia IsraelPinheiro,

o que você pode fazer é colocar, nesse seu exemplo, um print dentro de um while(true) quando você quiser faz ele sair de boa … após esse print implementar um método wait … tipo usando

public void waiting(int m) {

        long inicio, fim;

        inicio = System.currentTimeMillis();

        do {
            fim = System.currentTimeMillis();
        } while (fim - inicio < m);
    }

Lembrando que o m é em milésimos, você usar thread para fazer esperar … porém o certo é usar em processamento paralelo, dai perde o sentido dela :slight_smile:

Opa.new Timer().schedule(new TimerTask() { @Override public void run() { if(varBoolean) { // Do something. ... } else { cancel(); } } }, 0, (5 * 60 * 1000));Vai rodar a cada 5 minutos enquanto a varBoolean for true, quando for false o timer é cancelado.
Provavelmente no seu caso, você vai precisar combinar com uso de Threads.