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();
}