倒计时功能是在做游戏的时候用到的,开始的时候打算通过sleep函数来实现该过程,但是sleep用来计算时间非常的不准确,所以就是用了CountDownTimer这各类来实现该功能,然后是在new一个对象出来,然后gameview类中添加 mc = new MyCount(21000, 1000); mc.start();其中有两个参数,第一个参数代表的是总时间,第二个参数是每个多长时间要执行一次相关操作,然后调用其start方法来启动该对象,
class MyCount extends CountDownTimer {
public MyCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onFinish() { //时间到的时候所要执行的操作
lose =1;
invalidate();
}
@Override
public void onTick(long millisUntilFinished) { //每到一定时间所要执行的操作
shiJian--;
invalidate();
}
}
我们可以通过对于游戏视图的更新来实现对倒计时的功能,同时要注意的就是时间是每隔一段时间执行一次,所以说第一个数字的显示是在时间过了一秒钟之后才执行的,所以说时间的开始要注意,同时就是如果设置游戏的结束,最好设置在onfinish方法中,如果通过设置参数来实现的话,在计算上比较麻烦同时还会造成不必要的错误,而且此类错误可能会难以发现需要在多次测试之后才发现。