Java 倒计时计时器在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

我有一个倒计时,必须运行30秒,间隔3秒。 但似乎计时器一启动,第一个滴答声就出现了。我希望第一个滴答声发生在3秒后。 每3秒打一次勾。我该怎么做

这是我的密码-

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}