Java 倒计时计时器在3秒后开始第一次滴答声
我有一个倒计时,必须运行30秒,间隔3秒。 但似乎计时器一启动,第一个滴答声就出现了。我希望第一个滴答声发生在3秒后。 每3秒打一次勾。我该怎么做 这是我的密码-Java 倒计时计时器在3秒后开始第一次滴答声,java,android,Java,Android,我有一个倒计时,必须运行30秒,间隔3秒。 但似乎计时器一启动,第一个滴答声就出现了。我希望第一个滴答声发生在3秒后。 每3秒打一次勾。我该怎么做 这是我的密码- if (!timerRunning && timer == null) { timer = new CountDownTimer(300000, 3000) { @Override public void onTick(long l
if (!timerRunning && timer == null) {
timer = new CountDownTimer(300000, 3000) {
@Override
public void onTick(long l) {
timerRunning = true;
Log.e(TAG,"Tick every 3 seconds");
}
@Override
public void onFinish() {
timerRunning = false;
}
}.start();
}
一种可能的解决方案是使用如下处理程序:
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
//Do something after 3000ms
}
}, 3000);
因此,此代码可以帮助您:
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
if (!timerRunning && timer == null) {
timer = new CountDownTimer(300000, 3000) {
@Override
public void onTick(long l) {
timerRunning = true;
Log.e(TAG,"Tick every 3 seconds");
}
@Override
public void onFinish() {
timerRunning = false;
}
}.start();
}
}
}, 3000);
如何停止?30秒后(计时器启动后),计时器将自动停止。如果你想早点停止,你可以用定时器来完成。取消()
if(l==3000){timerRunning=true;}else{//do something}