Mam animację w mojej aplikacji na Androida, która miga różnymi kolorami w TextView. Użyłem metody TimerTask, Timer i Runnable do zaimplementowania tego. Muszę zatrzymać wątek, gdy użytkownik opuści aplikację podczas animacji onPause(), i wznowić wątek, gdy użytkownik wróci do aplikacji onResume(). Poniżej znajduje się kod, który zaimplementowałem, ale nie działa (elementy onPause() i onResume()) i nie rozumiem dlaczego. Czytałem kilka innych postów w podobnych sprawach, ale nie pomogły mi one dowiedzieć się, co zrobić w mojej sytuacji. Czytałem, że TimerTasks są nieaktualne i prawdopodobnie powinienem użyć metody ExecutorService; nie jest dla mnie jasne, jak wdrożyć tę funkcję.Jak zatrzymać i wznowić TimerTask/Timer
...timerStep5 = new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (b5) {
cashButton2SignalText.setBackgroundColor(Color.RED);
cashButton2SignalText.setTextColor(Color.WHITE);
b5=false;
} else {
cashButton2SignalText.setBackgroundColor(Color.WHITE);
cashButton2SignalText.setTextColor(Color.RED);
b5=true;
}
}
});
}
};
timer5.schedule(timerStep5,250,250);
}
public void onPause(){
super.onPause();
timerStep5.cancel();
}
public void onResume(){
super.onResume();
timerStep5.run();
}
Możliwe duplikat [wstrzymywanie/zatrzymywanie i uruchamianie/wznawiania Java TimerTask stale?] (Http://stackoverflow.com/questions/2098642/pausing-stopping-and-starting-resuming-java-timertask-continuously) – Gboy