如何以特定的开始时间启动计时器?
How do I start chronometer with a specific starting time?
假设我有这个变量:
long myMillis = 20000;
这意味着我希望我的 Chronometer 正好在 20 秒 (00:20) 开始。
我试过这样做:
chronometer.setBase(myMillis);
但是没用。它不是从 20 秒开始的。它从一些没有意义的奇怪时间开始。
In general the chronometer works like this (if you would like to set
the Base to a specific nr):
mChronometer.setBase(SystemClock.elapsedRealtime() - (nr_of_min * 60000 + nr_of_sec * 1000)))
所以做到:
mChronometer.setBase(SystemClock.elapsedRealtime() - (2* 60000 + 0 * 1000)))
来晚了,但可能会对其他人有所帮助。
我在第一个片段中使用了以下代码
chronometerTimer.setBase(SystemClock.elapsedRealtime());
chronometerTimer.start();
然后在某些情况下移动到下一个片段,其中 chornometer 应该在上一个 chronometer 结束的同时开始,我使用这个代码得到经过的时间。
long elapsedMillis = SystemClock.elapsedRealtime() - chronometerTimer.getBase();
我在下一个片段中发送 elapsedMilis 并使用以下代码
chronometerTimer.setBase(SystemClock.elapsedRealtime() - elapsedTime);
chronometerTimer.start();
效果很好。
对于 Kotlin,
要以 20 秒的开始时间开始 Chronometer
,您可以使用
val timeInMilSeconds = 20000
chronometer.base = SystemClock.elapsedRealtime() - timeInMilSeconds
chronometer.start()
这将以 20 秒的开始时间启动 Chronometer,即 00:00:20
假设我有这个变量:
long myMillis = 20000;
这意味着我希望我的 Chronometer 正好在 20 秒 (00:20) 开始。
我试过这样做:
chronometer.setBase(myMillis);
但是没用。它不是从 20 秒开始的。它从一些没有意义的奇怪时间开始。
In general the chronometer works like this (if you would like to set the Base to a specific nr):
mChronometer.setBase(SystemClock.elapsedRealtime() - (nr_of_min * 60000 + nr_of_sec * 1000)))
所以做到:
mChronometer.setBase(SystemClock.elapsedRealtime() - (2* 60000 + 0 * 1000)))
来晚了,但可能会对其他人有所帮助。 我在第一个片段中使用了以下代码
chronometerTimer.setBase(SystemClock.elapsedRealtime());
chronometerTimer.start();
然后在某些情况下移动到下一个片段,其中 chornometer 应该在上一个 chronometer 结束的同时开始,我使用这个代码得到经过的时间。
long elapsedMillis = SystemClock.elapsedRealtime() - chronometerTimer.getBase();
我在下一个片段中发送 elapsedMilis 并使用以下代码
chronometerTimer.setBase(SystemClock.elapsedRealtime() - elapsedTime);
chronometerTimer.start();
效果很好。
对于 Kotlin,
要以 20 秒的开始时间开始 Chronometer
,您可以使用
val timeInMilSeconds = 20000
chronometer.base = SystemClock.elapsedRealtime() - timeInMilSeconds
chronometer.start()
这将以 20 秒的开始时间启动 Chronometer,即 00:00:20