W onCreate uruchamiam zadanie, które powtarza się co minutę. Oto, jak to zrobić:timer.scheduleAtFixedRate nie zatrzymuje się, gdy wywołuję anulowanie
myTimer = new Timer();
int delay = 30000; // delay for 30 sec.
int period = 600000; // repeat every 60 sec.
doThis = new TimerTask() {
public void run() {
Log.v("TImer","repeated");
wv.reload();
}
};
myTimer.scheduleAtFixedRate(doThis, delay, period);
Cały kod znajduje się na Utwórz. Tak więc, gdy aplikacja wyłącza się z ekranu, widzę w logcat, że timer działa na czas i nie przestanie, chyba że aplikacja zostanie zniszczona. Tak więc w aktywności nazywam się myTimer.cancel();
, ale to nie pomogło. Wciąż widzę aktualizacje w kodzie logującym, nawet gdy aplikacja nie jest wyświetlana na ekranie. A więc, jak zatrzymać timerTask
?
Umieściłem go na onStop i działa teraz, dziwne, dlaczego to nie działa naPause ... – Daler
Dziwne. Czy Log.v pokazuje cokolwiek w twojej metodzie onPause? Jeśli nie, to myślę, że może być błędnie napisane, a może twój P nie jest wielkimi literami lub czymś innym nie na miejscu - więc tak naprawdę nie jest wywoływany. –
)) dokładnie, moja właściwość onPause została uznana za błędną ...) – Daler