В настоящее время я пытаюсь настроить сканирование WiFi в приложении для Android, которое сканирует точки доступа WiFi каждые 30 секунд.
Я использовал Timer и TimerTask для правильной проверки сканирования с требуемыми интервалами.
Однако я хочу, чтобы можно было остановить и запустить сканирование, когда пользователь нажимает кнопку, и в настоящее время у меня возникают проблемы с остановкой, а затем перезапуск таймера и таймера.
Вот мой код
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();
}
}
Итак, таймер и задача запускаются нормально, и сканирование происходит каждые 30 секунд, но я не могу заставить его остановиться, я могу остановить таймер, но задача все еще возникает, и scanTask.cancel(), похоже, тоже не работает.
Есть ли лучший способ сделать это? Или я что-то пропустил в классах Timer/TimerTask?