如何以默认 00:00 以外的特定时间启动计时器?是否可以设置 chronometerObj.setBase(startTime) ?
ch.setBase(SystemClock.elapsedRealtime()-anylongvalue);
ch.start();
如果我放了anylongvalue,我可以设置开始时间吗?
如何以默认 00:00 以外的特定时间启动计时器?是否可以设置 chronometerObj.setBase(startTime) ?
ch.setBase(SystemClock.elapsedRealtime()-anylongvalue);
ch.start();
如果我放了anylongvalue,我可以设置开始时间吗?
一般来说:
mChronometer.setBase(SystemClock.elapsedRealtime() - (nr_of_min * 60000 + nr_of_sec * 1000)))
Chronometer 对象在实例化时默认设置为现在的基本时间('now' 与您从中获得的值一样SystemClock.elapsedRealtime()
)。
您可以通过调用更改基准时间(00:00 时间)setBase(<some other value>)
。
据推测,虽然我没有尝试过这个实验,但你可以看到自上次系统启动以来经过的时间,使用setBase(0)
.
因此,您可以使用 chronometer 查看自您过去任意调用SystemClock.elapsedRealtime()
. 诀窍是您需要将该值存储在某个地方,尽管应用程序和手机状态发生变化,您仍可以可靠地取回它。(参见Android:chronometer as an persistent stopwatch。如何设置开始时间?什么是 Chronometer“Base”?例如。)
许多答案建议在意图中坚持过去的任意时间。但是,充其量,这只会使计时器在手机保持开机状态时继续计数。
我已经在使用数据库并将我的开始时间存储在那里。我为它创建了一个单列表并在其中存储了一条记录。我的计时器开始时间在手机重启后仍然存在。