自定义计数定时器

Rm *_*per 1 service android timer chronometer

我需要在我的应用程序中使用计数器.我浏览了很多关于这个主题的论坛,但我找不到任何东西.实际上我明白我们可以用计时器做到这一点,但我有2个天文台问题:

  1. 我不能在服务中使用天文台,因为天文台需要布局.
  2. 我无法初始化计时器计数超过1小时.

我的代码在这里:

stopWatch =  new Chronometer (MainActivity.this);
startTime = SystemClock.elapsedRealtime();
stopWatch.start();
stopWatch.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
    @Override
    public void onChronometerTick(Chronometer arg0) {
        countUp = (SystemClock.elapsedRealtime() - arg0.getBase()) / 1000;
        String asText = (countUp / 60) + ":" + (countUp % 60);
        Log.i("t", asText);
    }
});
Run Code Online (Sandbox Code Playgroud)

Uma*_*nth 9

您可以反向使用countDownTimer并获取经过的时间.

long totalSeconds = 30;
long intervalSeconds = 1;

CountDownTimer timer = new CountDownTimer(totalSeconds * 1000, intervalSeconds * 1000) {

    public void onTick(long millisUntilFinished) {
        Log.d("seconds elapsed: " , (totalSeconds * 1000 - millisUntilFinished) / 1000);
    }

    public void onFinish() {
        Log.d( "done!", "Time's up!");
    }

};
Run Code Online (Sandbox Code Playgroud)

启动计时器.

timer.start();
Run Code Online (Sandbox Code Playgroud)

要停止计时器.

timer.cancel();
Run Code Online (Sandbox Code Playgroud)