0

嗨,我的活动 oncreate 方法中有一个倒数计时器,如下所示

   start1 = new CountDownTimer(level1time, 1000) 
         //timer updated every second
          {

         public void onTick(long millisUntilFinished) {
       }
    public void onFinish() {
           //switch activities
    }

          }

         .start();
    }

然后我稍后在我的代码中调用 start1.cancel。这在此特定活动启动一次但稍后再次创建此活动时有效,由于第一个计时器完成,活动会立即切换。

我的理解是,每次创建活动时都应该创建一个新的计时器,但似乎并非如此。有谁知道如何解决这个问题?

4

1 回答 1

0

无论如何,最好使用处理程序而不是计时器。我通常会创建一个最终的 Runnable 对象,该对象具有我想要在特定时间后运行的内容,在 onCreate() 中创建一个新的 Handler,并在一定延迟后使用 postDelayed(Runnable, int) 将 Runnable 发布到它。如果用户离开活动或者您不希望它执行,您可以简单地使用定义的 Runnable 调用 Handler.removeCallbacks(Runnable) 来停止其上的“计时器”。

这是您问题的高级方法。熟悉 Handler 类,这将成为一个非常容易的问题。

于 2011-03-29T22:18:49.220 回答