Android天文台

时间:2012-04-09 12:42:24

标签: android chronometer

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

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

2 个答案:

答案 0 :(得分:0)

一般来说:

  

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

答案 1 :(得分:0)

Chronometer对象,在实例化时,默认为设置为现在的基准时间('now',如同从SystemClock.elapsedRealtime()获得的值)。

您可以致电setBase(<some other value>)来更改基准时间(00:00时间)。

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

因此,您可以使用计时器查看自上次拨打任意电话到SystemClock.elapsedRealtime()以来所经过的时间。诀窍在于,您需要将该值存储在某个地方,即使应用程序和手机状态发生变化,您也可以将其恢复。 (例如,请参阅Android: chronometer as a persistent stopwatch. How to set starting time? What is Chronometer "Base"?。)

许多答案建议在意图中坚持过去的任意时间。但是,最好的情况是,只有在手机保持开启状态时才会使计时器计时。

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