我们说我有这个变量:
long myMillis = 20000;
这意味着我希望我的天文台计时器在20秒(00:20)开始。
我试过这样做:
chronometer.setBase(myMillis);
但它不起作用。它不会以20秒开始。它从一些没有意义的奇怪时间开始。
答案 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