java - 可靠地获取时差 - Android

标签 java android

给定来自服务器的 Posix 时间(在应用程序启动时,我得到以秒为单位的时间),我想以最可靠的方式将事件发生后耗时发送到服务器。

这些是我所做的步骤:

  1. 获取 Posix 时间
  2. 点击一个按钮,获取真实的时间戳,也就是将耗时加上服务器时间(不能依赖客户端)
  3. 将事件的 Posix 时间发送到服务器

我使用了 Java.Date,但是我很确定这很容易上当受骗。想象一下在步骤 1 和步骤 2 之间我改变了时钟。

现在另一个问题是即使手机空闲也能测量时间。

所以我真正的问题是如何可靠地测量 Android 中的时间差。

我在 stackoverflow 中进行了搜索,但我找到的所有示例都带有日期。

最佳答案

您应该考虑使用SystemClock.elapsedRealtime()SystemClock.elapsedRealtimeNanos()取决于您想要的精度。

SystemClock保证是单调的,即使 CPU 处于省电模式,也会继续滴答。

关于java - 可靠地获取时差 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49743137/

相关文章:

java - Java中的除法以获得下一个更高的值

java - Oracle Java API 中的 NO_COPY 指令

android - 如何在 Android 中使用图案/密码模式锁定/解锁屏幕?

android - 如何在移动设备上调用 Facebook 页面的桌面站点?

android - 将 View 本身移动到动画的结束位置

java - 如何使按钮变小?

java - GSON 从 JSON 解析对象异常数组

java - 在小部件android上绘制 Canvas

java - 为什么要避免在 java 中使用 Runtime.exec()?

java - 无法让 ACRA 接受自签名证书