3

如何以默认 00:00 以外的特定时间启动计时器?是否可以设置 chronometerObj.setBase(startTime) ?

ch.setBase(SystemClock.elapsedRealtime()-anylongvalue); ch.start();如果我放了anylongvalue,我可以设置开始时间吗?

4

2 回答 2

0

一般来说:

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

于 2013-05-28T07:56:36.217 回答
0

Chronometer 对象在实例化时默认设置为现在的基本时间('now' 与您从中获得的值一样SystemClock.elapsedRealtime())。

您可以通过调用更改基准时间(00:00 时间)setBase(<some other value>)

据推测,虽然我没有尝试过这个实验,但你可以看到自上次系统启动以来经过的时间,使用setBase(0).

因此,您可以使用 chronometer 查看自您过去任意调用SystemClock.elapsedRealtime(). 诀窍是您需要将该值存储在某个地方,尽管应用程序和手机状态发生变化,您仍可以可靠地取回它。(参见Android:chronometer as an persistent stopwatch。如何设置开始时间?什么是 Chronometer“Base”?例如。)

许多答案建议在意图中坚持过去的任意时间。但是,充其量,这只会使计时器在手机保持开机状态时继续计数。

我已经在使用数据库并将我的开始时间存储在那里。我为它创建了一个单列表并在其中存储了一条记录。我的计时器开始时间在手机重启后仍然存在。

于 2016-07-23T21:18:18.033 回答