如何从00:00开始计时器

时间:2015-09-18 11:39:04

标签: android chronometer

当我点击图像按钮(应启动计时器)时,计时器不会从00:00开始,而是从应用程序运行时开始。 例如,如果我打开应用程序并等待10秒,当我点击图像按钮时,计时器将从00:10开始。 每当我点击图像按钮时,我该怎样做才能从00:00开始计时器?

这是我的代码:

import android.app.Activity;
import android.os.Bundle; 
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Chronometer;
import android.widget.ImageButton;
import android.os.SystemClock;

public class MainScreen extends Activity {
    Chronometer focus;
    ImageButton start;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main_screen);

    start=(ImageButton)findViewById(R.id.FingerStartImageBtn);
    focus=(Chronometer)findViewById(R.id.timer);
    focus.setBase(SystemClock.elapsedRealtime());
    start.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            focus.start();
        }
    });

 }
}

2 个答案:

答案 0 :(得分:10)

在致电focus.setBase(SystemClock.elapsedRealtime())之前致电focus.start();应该这样做。从天文台的代码

public void setBase(long base) {
    mBase = base;
    dispatchChronometerTick();
    updateText(SystemClock.elapsedRealtime());
}

 private synchronized void updateText(long now) {
    long seconds = now - mBase;
    seconds /= 1000;
    String text = DateUtils.formatElapsedTime(mRecycle, seconds);

你可以看到时间设置为0,

答案 1 :(得分:3)

你可以在elapsedRealtime()中给它一个开始时间。

我使用下面的代码工作正常我点击按钮它从00:00开始,你也可以使用

设置“H:MM:SS”之类的格式
mChronometer.setBase(SystemClock.elapsedRealtime());
mChronometer.start();