Android - 获取当前时间而不依赖于设备的时钟

Avi*_*bat 6 time android system-clock

我注意到System.currentTimeMillis()时间取决于设备.如果我更改设备时钟的时间,此方法将返回不同的答案.

例如:如果现在的实时时间是10:00,并且我将设备上的时钟更改为9:30,那么System.currentTimeMillis()将返回9:30时间(以毫秒为单位).

我也试过这个答案和其他一些答案,但没有找到任何有用的东西.我应该声明我的应用程序主要是脱机工作.有没有办法在没有外部API的情况下获得真实的当前时间(独立于设备)?

Rid*_*lly 8

如果不是"离线"部分,我建议使用时间服务器,但考虑到您的应用程序大部分时间都处于脱机状态,这可能不是一个好的解决方案.

如果您不需要实际时间但只需要一个无法消除的时间,您可以使用SystemClock.elapsedRealtime(),它可以为您提供自设备上次启动以来的时间.

您还可以组合时间服务器和SystemClock.elapsedRealtime():从计时器服务器获取一次时间(例如,在启动之后),然后再将elapsedRealtime()添加到初始值(减去获取timerserver值时的elapsedRealtime值) .