如何以特定的启动时间启动计时器?

时间:2016-06-30 21:29:42

标签: android chronometer

我们说我有这个变量:

long myMillis = 20000;

这意味着我希望我的天文台计时器在20秒(00:20)开始。

我试过这样做:

chronometer.setBase(myMillis);

但它不起作用。它不会以20秒开始。它从一些没有意义的奇怪时间开始。

3 个答案:

答案 0 :(得分:5)

  

一般来说,天文台的工作原理如下(如果你想设置的话)   特定nr的基础:

mChronometer.setBase(SystemClock.elapsedRealtime() - (nr_of_min * 60000 + nr_of_sec * 1000)))

所以吧:

 mChronometer.setBase(SystemClock.elapsedRealtime() - (2* 60000 + 0 * 1000)))

答案 1 :(得分:3)

它迟到但可能会帮助别人。 我在第一个片段中使用了以下代码

chronometerTimer.setBase(SystemClock.elapsedRealtime());
chronometerTimer.start();

然后将一些条件移动到下一个片段,其中色度计应该在前一个色度计结束的同时开始,我使用此代码获得经过的时间。

long elapsedMillis = SystemClock.elapsedRealtime() - chronometerTimer.getBase();

我在下一个片段中发送elapsedMilis并使用以下代码

chronometerTimer.setBase(SystemClock.elapsedRealtime() - elapsedTime);
chronometerTimer.start();

它完美无缺。

答案 2 :(得分:1)

对于Kotlin来说,

要以20秒的开始时间开始Chronometer,您可以使用

val timeInMilSeconds = 20000
chronometer.base = SystemClock.elapsedRealtime() - timeInMilSeconds
chronometer.start()

这将启动天文台,开始时间为20秒,即00:00:20