1

如果 24 小时过去了,我正在开发一个需要与网络服务器同步的应用程序。每个交互都记录在数据库中,以便我可以跟踪上次同步时间,因此当应用程序启动时,它会检查数据库以查看是否到了同步时间。

到目前为止,我还没有找到合适的时钟来测量可靠和一致的时间,时钟要么是临时的(测量正常运行时间),要么用户可以更改它们的日期,所以有什么好的策略来处理这些的问题?

4

1 回答 1

2

这是软件工程中每个人的常见问题,唯一正确的答案是:不是没有网络调用。测量时间是你无法普遍做到的事情。时区、不同的用户时钟、夏令时,所有这些都会发生。要么使用System.elapsedRealTime()诸如启动监听器之类的东西,要么询问服务器时间是什么(这实际上是一个主意,因为它可能a)失败b)非常慢c)花费用户金钱并且d)浪费电池。您可以做的另一件事是每天在特定时间(例如凌晨 4 点)自动同步。这对用户更改时间或 DST 没有帮助,但它适用于 99% 的所有场景。用户通常不会改变很多时间:)

于 2013-04-20T21:53:48.807 回答