我正在尝试在两个android设备之间同步时间。精度必须达到5毫秒。gps和网络时间不是如此精确,所以我考虑通过本地网络在设备之间共享时间,并使用PTP(精确时间协议)同步时间。现在,由于我不能更改非根设备上的时间,所以我考虑保存设备共享的时间差,并继续在文本视图中向用户显示时间。现在,文本视图需要每隔一毫秒更新一次,这样用户也可以看到以毫秒为单位的时间。我在一个线程中更新文本视图,每隔毫秒更新一次。
代码语言:javascript复制class CountDownRunner implements Runnable {
// @Override
public void run() {
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
while (!Thread.currentThread().isInterrupted()) {
try {
setCurrentTime();
Thread.sleep(1); // Pause of 1/100 Second
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
} catch (Exception e) {
}
}
}
}这就是问题所在,在同步时间之后,时间差小于5毫秒,但是在同步的一段时间之后,时间开始漂移一部分,并且在10-15分钟之后,时间差大于1秒。那么,对于如何纠正这个问题,有什么想法吗?