Android - Controlando uma tarefa com o Timer e o TimerTask?
Atualmente, estou tentando configurar uma varredura WiFi no meu aplicativo Android que procura pontos de acesso Wi-Fi a cada 30 segundos.
Usei o Timer e o TimerTask para executar a verificação corretamente nos intervalos que eu exigir.
No entanto, desejo poder parar e iniciar a verificação quando o usuário pressionar um botão e, atualmente, estou tendo problemas para parar e reiniciar o Timer e o TimerTask.
Aqui está o meu código
TimerTask scanTask;
final Handler handler = new Handler();
Timer t = new Timer();
public void doWifiScan(){
scanTask = new TimerTask() {
public void run() {
handler.post(new Runnable() {
public void run() {
wifiManager.scan(context);
Log.d("TIMER", "Timer set off");
}
});
}};
t.schedule(scanTask, 300, 30000);
}
public void stopScan(){
if(scanTask!=null){
Log.d("TIMER", "timer canceled");
scanTask.cancel();
}
}
Portanto, o Timer e a Tarefa começam bem e a verificação acontece a cada 30 segundos; no entanto, não consigo parar, posso parar o Timer, mas a tarefa ainda ocorre e o scanTask.cancel () também não parece funcionar.
Existe uma maneira melhor de fazer isso? Ou estou faltando alguma coisa nas classes Timer / TimerTask?