我有一个Android应用程序,可以找到两个事件之间的时间间隔。 当事件1触发广播时,我使用System.currentTimeInMillis()存储当前时间 当第二个事件发生时我会这样做,然后计算差异。 然而,结果总是几秒钟关闭,在某种意义上我知道间隔大约是4秒,但我得到的值大约是6。
这是因为发送广播,接收广播然后存储值之间的延迟? 如果是这样,有什么更好的方法来获得更准确的价值?
答案 0 :(得分:1)
Per Developer.android.com(http://developer.android.com/reference/android/os/SystemClock.html):
System.currentTimeMillis()是标准的"墙"时钟(时间和时间) date)表示自纪元以来的毫秒数。挂钟可以 由用户或电话网络设置(参见setCurrentTimeMillis(long)), 所以时间可能会不可预测地向后或向前跳跃。这个时钟 只应在与真实世界日期对应时使用 时间很重要,例如在日历或闹钟应用程序中。 间隔或经过时间测量应使用不同的时钟。 如果您使用的是System.currentTimeMillis(),请考虑收听 ACTION_TIME_TICK,ACTION_TIME_CHANGED和ACTION_TIMEZONE_CHANGED 意图广播以找出时间的变化。