Ich habe eine Animation in meiner Android App, die ein TextView andere Farben blinkt. Ich habe eine TimerTask-, Timer- und Runnable-Methode verwendet, um dies zu implementieren. Was ich tun muss, ist den Thread zu stoppen, wenn ein Benutzer die App während dieser Animation in onPause() verlässt und den Thread wieder aufnimmt, wenn der Benutzer in onResume() zur App zurückkehrt. Das Folgende ist der Code, den ich implementiert habe, aber er funktioniert nicht (die Teile onPause() und onResume()) und ich verstehe nicht warum. Ich habe ein paar andere Beiträge zu ähnlichen Themen gelesen, aber sie haben mir nicht geholfen, herauszufinden, was ich in meiner Situation tun soll. Ich habe gelesen, dass TimerTasks veraltet sind, und ich sollte wahrscheinlich eine ExecutorService-Methode verwenden; Es ist mir unklar, wie diese Funktion implementiert werden soll.Wie pausiere ich und setze einen TimerTask/Timer fort
...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();
}
Mögliches Duplikat [Pausieren/Stoppen und Starten/Fortsetzen Java Timertask kontinuierlich?] (Http://stackoverflow.com/questions/2098642/pausing-stopping-and-starting-resuming-java-timertask-continuously) – Gboy