我的应用程序中创建了一个独立的时钟。时钟作为活动中的不同线程运行,从我设置的基准时间开始。我使用设置时钟时的uptimemillis和当前的uptimemillis之间的差异来更新时钟。但uptimetimer可以通过Android重置,并在Android重启时重置。
我只想知道正常运行时间是否重置,以确定时钟是否仍然可靠。
如何?
答案 0 :(得分:4)
根据文档,您可以使用SystemClock.elapsedRealtime()
elapsedRealtime(): 返回自引导以来的毫秒数,包括睡眠时间。
此值仅在重启设备时重置。收听广播boot_complete,你会知道它是什么时候。
在文档中清楚地注明了updateMillis()的问题:
uptimeMillis(): 返回自引导以来的毫秒数,不计入深度睡眠所花费的时间。注意:此值可能偶尔会重置(否则会被包围)。
根据我对文档的理解,通过使用elapsedRealtime,您的用户无法操纵您的计数器。