3
public void BetTimerFuction()
    {
        int delay=0;
        int period=200;
        betTimer = new Timer();
        betTimer.schedule(new TimerTask() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                mHandlerBet.obtainMessage().sendToTarget();

            }
        }, delay, period);

    }

它是我的计时器代码,但我没有在视图类中使用该计时器,我也使用 canvas 。当我在视图类中使用该计时器时,当我单击按钮时,该计时器获得一个数字的过程非常慢,它增加了两个计时器的整数

4

2 回答 2

1

我认为你首先为你的停止功能做空。

public void StopBetTimer()
     {
            try
            {
                if(betTimer !=null)
                {
                    betTimer.cancel();
                    betTimer=null;
                }
            }
            catch(Exception e)
            {

            }
      }
于 2014-10-20T07:26:56.777 回答
1

我修改了您的代码,因为我认为该代码没有问题。但可能是您在第一次使用时没有正确初始化以使您的计时器归零并且也正确停止。

public void BetTimerFuction()
    {
        int delay=0;
        int period=100;
        betTimer = new Timer();
        betTimer.schedule(new TimerTask() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                mHandlerBet.obtainMessage().sendToTarget();

            }
        }, delay, period);

    }

这是给你的停止功能

public void StopBetTimer()
     {
            try
            {
                if(betTimer !=null)
                {
                    betTimer.cancel();
                    betTimer=null;
                }
            }
            catch(Exception e)
            {

            }
      }
于 2014-09-24T06:31:44.910 回答