在Android上统计计时器?

时间:2015-06-19 15:49:38

标签: java android timer format milliseconds

我一直在寻找一种方法来创建一个以mm:ss:SS格式计数的计时器,并且在我的生活中无法找到一种方法。我有一个计时器通过一个Handler和一个Runnable运行,但时间关闭,并花了大约2.5秒做一个“秒”。我也需要这个计时器才能倒计时!

任何人都可以给我任何资源或代码片段来研究这个,因为它是我正在编写的应用程序的重要部分。

这是我正在使用的一些代码

private Handler handler = new Handler();

private Runnable runnable = new Runnable() {
       @Override
        public void run() {
      /* do what you need to do */
            testMethod();
      /* and here comes the "trick" */
            handler.postDelayed(this, 10);
        }
    };

public void testMethod()
    {
//        Log.d("Testing", "Test");
        final TextView timeLabel = (TextView)findViewById(R.id.timeString);
        count++;

        seconds = (int)(count / 100);

        final String str = ""+count;
        runOnUiThread(new Runnable() {
            public void run() {
                timeLabel.setText("" + seconds);
//                Log.d("Time", "" + count);
            }
        });
    }

的Ta!

2 个答案:

答案 0 :(得分:2)

通过扩展CountDownTimer类来创建小型自定义类,然后添加整数或长类型然后递增它,因为在这种情况下每个滴答是1秒(整数)

public class TimeCounter extends CountDownTimer {
    // this is my seconds up counter
    int countUpTimer;
    public TimeCounter(long millisInFuture, long countDownInterval) {
        super(millisInFuture, countDownInterval);
        countUpTimer=0;
    }

    @Override
    public void onTick(long l) {
        //since each tick interval is one second
        // just add 1 to this each time
        myTextView.setText("Seconds:"+countUpTimer);
        countUpTimer = countUpTimer+1;
    }

    @Override
    public void onFinish() {
        //reset counter to 0 if you want
        countUpTimer=0;           
    }
}

  TimeCounter  timer = new TimeCounter(whenToStopInSeconds*1000, 1000);

这应该让你开始,在你的情况下使用long而不是整数 countUpTimer = countUpTimer+1000 countUpTimer类型并根据您的时间进行解析

答案 1 :(得分:0)

我建议您使用java.util.Timerjava.util.TimerTask API,而不是使用处理程序。使用Timer的void scheduleAtFixedRate()方法,该方法基本上在固定的时间间隔后执行任务。 Handler方法很可能使用固定延迟执行。

Timer's Documentation

TimerTask's Documentation