6

uptimeMillis() 上的Android 文档说:

返回自启动以来的毫秒数,不计算深度睡眠所花费的时间。注意:此值可能会偶尔重置(否则会回绕)。

似乎很奇怪,文档担心它会一直缠绕。毕竟,该方法返回一个long。快速计算得出,它需要大约 292,271,023 年才能完成!

那么文档是怎么回事?它真的有可能包装吗?该值可以在长时间达到最大值之前包装吗?这就是文档实际上想说的吗?如果是这样,它什么时候会结束?


[这尤其令人费解,因为System.currentTimeMillis()也是一个 long 表示自一个纪元以来的时间。然而,Android 完全没有提到价值包装的可能性。更何况,对于从 0 开始的 uptimeMillis...]

4

1 回答 1

5

这主要是推测,但根据我找到的文档似乎是有道理的。如果我们考虑到native public static long uptimeMillis()inSystemClock是一个本地方法,在 32 位空间中运行,然后long当您调用它时它只是被转换为 Java,那么这是有道理的,因为 2^32 毫秒很容易达到。

于 2012-11-25T05:42:30.023 回答