Android - Executar um thread repetidamente dentro de um temporizador
Primeiro de tudo, eu não poderia nem escolher o método para usar, eu estou lendo há horas agora e alguém diz usar 'Manipuladores', alguém diz usar 'Timer'. Aqui está o que eu tento alcançar:
Nas preferências, há uma configuração (caixa de seleção) que habilita / desabilita o trabalho repetido. Como essa caixa de seleção está marcada, o temporizador deve começar a funcionar e o encadeamento deve ser executado a cada x segundos. Como a caixa de seleção está desmarcada, o temporizador deve parar.
Aqui está meu código:
Verificando se a caixa de seleção está marcada ou não, se marcada, o 'refreshAllServers' será executado, o que faz o trabalho com o temporizador.
boolean CheckboxPreference = prefs.getBoolean("checkboxPref", true);
if(CheckboxPreference == true) {
Main main = new Main();
main.refreshAllServers("start");
} else {
Main main = new Main();
main.refreshAllServers("stop");
}
O refreshAllServers void que faz o trabalho de timer:
public void refreshAllServers(String start) {
if(start == "start") {
// Start the timer which will repeatingly execute the thread
} else {
// stop the timer
}
E aqui está como eu executo o meu thread: (funciona bem sem temporizador)
Thread myThread = new MyThread(-5);
myThread.start();
O que eu tentei?
Eu tentei qualquer exemplo que eu pudesse ver do Google (manipuladores, timer) nenhum deles funcionou, eu consegui iniciar o temporizador uma vez, mas parando não funcionou. O código mais simples e compreensível que vi na minha pesquisa foi o seguinte:
new java.util.Timer().schedule(
new java.util.TimerTask() {
@Override
public void run() {
// your code here
}
},
5000
);