我需要在 Android 上测量经过的长时间,并且其间可能会重新启动设备。
据我了解,System.nanoTime()
每次设备重新启动时都会重置,并且System.currentTimeMillis()
不可靠,因为用户可以更改它。
我想出的唯一解决方案是听ACTION_SHUTDOWN
and BOOT_COMPLETED
,System.currentTimeMillisec()
用来计算经过的时间(用户不能在设备关闭时更改时钟时间,希望 :) )并将其添加到System.nanoTime()
我关闭之前的最后一个时间。
老实说,我不喜欢这个解决方案,因为它非常昂贵(我需要收听 2 个广播事件)并且不准确,但我想不出任何其他方法来做到这一点。
有任何想法吗?本地解决方案也对我有好处。