正常运行时间上的Android文档Millis() 说:
返回自启动以来的毫秒数,不包括深度睡眠所花费的时间。注意:此值可能会偶尔重置(否则会环绕)。
文档担心它总是绕来绕去,这似乎很奇怪。毕竟,该方法返回一个长整型。快速计算得出,它大约需要 292,271,023 年才能完成!!
那么文档是怎么回事呢?它真的有可能包裹吗?该值是否可以在长时间达到最大值之前换行?这是文档实际上想说的吗?如果是这样,它什么时候会包装?
[这尤其令人费解,因为System.currentTimeMillis()也是一个长,表示自纪元以来的时间。然而,Android绝对没有提到价值包装的可能性。更何况,对于正常运行时间米利斯,它从 0 开始...]
这主要是猜想,但根据我找到的文档似乎是有道理的。如果我们考虑到 SystemClock
中的 native public static long uptimeMillis()
是一个本机方法,在 32 位空间中运行,然后在您调用它时它只是被强制转换为 Java long
那么这是有意义的,因为 2^32 毫秒很容易到达。