我的 Android 应用程序中有一个动画,它会闪烁不同颜色的 TextView。我使用了 TimerTask、Timer 和 Runnable 方法来实现它。我需要做的是在 onPause() 动画期间用户离开应用程序时停止线程,并在 onResume() 中用户返回应用程序时恢复线程。以下是我实现的代码,但它不起作用(onPause() 和 onResume() 部分),我不明白为什么。我已经阅读了一些关于类似问题的其他帖子,但它们并没有帮助我弄清楚在我的情况下该怎么做。我读过 TimerTasks 已经过时了,我可能应该使用 ExecutorService 方法;我不清楚如何实现这个功能。
...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();
}