我想要一个在按下按钮时改变背景颜色的应用程序。 500 毫秒后,我想将背景颜色更改为黑色 2000 毫秒。然后再次重复整个过程,直到用户终止。
我有以下代码,但它没有像我想象的那样工作。
private void set() {
rl.setBackgroundColor(Color.WHITE);
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
rl.setBackgroundColor(Color.BLACK);
set(); // can I do that?
}
});
}
}, 500);
}
有人能指出我正确的方向吗?我该怎么做?所以我想要:
- 执行一些代码
- 经过 X 时间后,我想执行另一个代码,并且它应该保持这种状态 X 时间
- 重复该过程,直到用户取消该操作。
最佳答案
我认为这样的事情应该有效
Handler handler = new Handler();
Runnable turnBlack = new Runnable(){
@Override
public void run() {
myView.setBackgroundColor(Color.BLACK);
goWhite();
}};
Runnable turnWhite = new Runnable(){
@Override
public void run() {
myView.setBackgroundColor(Color.White);
goBlack();
}};
public void goBlack() {
handler.postDelayed(turnBlack, 500);
}
public void goWhite() {
handler.postDelayed(turnWhite, 2000);
}
关于java - 在android中重复代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15364044/