如何在活动启动时延迟计时器?

时间:2019-01-25 09:48:10

标签: java android android-activity timer

我已经在我的游戏中使用CountDownTimer实现了一个简单的计时器,我需要它在活动开始时几秒钟内开始计时。

在我的主要活动的onCreate方法上,我将其称为:

playingTime();

如下所示

public void playingTime() {
    new CountDownTimer(30000, 1000) {

        public void onTick(long millisUntilFinished) {
            String elapsedTime = String.valueOf(millisUntilFinished / 1000);
            timer.setText(elapsedTime);
        }

        public void onFinish() {

            timer.setText(R.string.timer_game_over_text);

        }
    }.start();

}

启动活动后,计时器正常但立即启动。我想在执行之前设置延迟,或者是否有更好的方法在游戏中设置计时器。 (倒数计时器和正常计时器)

3 个答案:

答案 0 :(得分:2)

您可以使用Handler添加延迟,如下所示:

Handler handler = new Handler();
handler.postDelayed(new Runnable() {
  @Override
  public void run() {
    //Executed after YOUR_DELAY_IN_MILLIS
    playingTime()
  }
}, YOUR_DELAY_IN_MILLIS);

将代码放入活动的onCreate()方法

答案 1 :(得分:2)

您可以在如下所示的 onCreate()方法中使用该处理程序,并在1秒后调用 playingTime

 new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                playingTime();
            }
        }, 1000);

答案 2 :(得分:1)

您可以这样设置延迟时间:

       new Handler().postDelayed(new Runnable(){
          @Override
          public void run() {
            // call method here
          }
      }, MY_DELAY_IN_MS);

以自己的延迟替换MY_DELAY_IN_MS