您好我的活动oncreate方法中有一个倒计时器,如下所示
start1 = new CountDownTimer(level1time, 1000)
//timer updated every second
{
public void onTick(long millisUntilFinished) {
}
public void onFinish() {
//switch activities
}
}
.start();
}
然后我在我的代码中调用start1.cancel。当这个特定活动开始一次但稍后再次创建此活动时,活动会因第一个计时器结束而立即切换。
我的理解是每次创建活动时都应该创建一个新的计时器,但似乎并非如此。有谁知道如何解决这个问题?
答案 0 :(得分:0)
在任何情况下,最好使用Handler而不是Timers。我通常创建一个最终的Runnable对象,它具有我想要在一定时间后运行的东西,在onCreate()中创建一个新的Handler,并在postDelayed(Runnable,int)一定延迟之后将Runnable发布到它。如果用户离开活动或者您希望它不执行,您可以使用定义的Runnable调用Handler.removeCallbacks(Runnable)来停止其上的“计时器”。
这是你问题的高级方法。熟悉Handler类,这就成了一个非常简单的问题。