如何使用默认00:00以外的特定时间启动计时器?是否可以设置chronometerObj.setBase(startTime)?
ch.setBase(SystemClock.elapsedRealtime()-anylongvalue);
ch.start();
我可以设置开始时间,如果我放任何长值吗?
答案 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"?。)
许多答案建议在意图中坚持过去的任意时间。但是,最好的情况是,只有在手机保持开启状态时才会使计时器计时。
我已经在使用数据库并将我的开始时间存储在那里。我为它创建了一个单列表,并在其中存储了一条记录。计时器的开始时间在电话重启后仍然存在。