您好我真的不知道如何做到这一点我尝试过计时器和CountDownTimer但我无法弄清楚如何完成它。我想做的事 ?我想做的每一秒健康在通过“20”之后下降“-1”以显示Dialog,它会说
Title: "Low Health"
Message: "The dog health is going low give him some food"
Button: "Got it"
我有这个代码,当生病时启动应用程序关闭/崩溃自动我不知道该怎么做请帮助:
Timer myTimer = new Timer();
myTimer.schedule(new TimerTask() {
@Override
public void run() {
Health -= 1;
if (Health <= 20) {
if (!canSeeWarnDialog) {
lowFood();
}
canSeeWarnDialog = true;
}
}
}, 0, 1000);
谢谢。
修改 我希望这个动作持续1分钟,我告诉1秒。更快的测试原因...
答案 0 :(得分:1)
如果我理解正确,健康状况将具有一定的价值,您希望每秒减少1。如果该值低于20,那么你想调用lowFood()吗?这是你可以尝试的东西(我在真实设备上测试了这个并更新了答案):
Handler handler = new Handler();
handler.post(new Runnable() {
boolean run = true;
int health = 200;
@Override
public void run() {
while(run) {
health = health - 1;
if(health < 1) {
lowFood();
run = false;
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});