0

我正在开发聊天应用程序并保存currentTimeMilis。我得到了按 currenttimemilis 排序的新条目。当新条目来时 listview 更新。但是有些人的 currenttimemilis 值比其他人大.. 所以显示新条目是个问题

所以我不能得到新的条目......我应该怎么做?

4

1 回答 1

0

如果在不同的设备上收集定时,它们将始终因设备而异,因为它们彼此不同步。我只看到解决它的选项:

- 如果消息是立即发送的,您可以将消息时间设置为消息到达的时间,因为它们将“可能”按照它们发送的顺序到达。“可能”是因为某些用户的互联网连接速度可能较慢,这可能会延迟消息,但这对于大多数用途来说并不重要。

- 如果消息是稍后发送的,您必须连接到时间服务器,从那里获取时间以在消息中设置。当然,您不需要连接每条消息,只需在应用程序启动时获取设备和服务器之间的时间差,然后为每条消息应用该差异。

- 如果您的应用程序需要启用 GPS,您还可以从中获取准确的时间。由于 GPS 使用 UTC,因此您需要对您的时区进行更正。

--已编辑--

有关如何从时间服务器获取时差的更多详细信息:

1-在应用程序启动时,您连接到时间服务器以获取准确时间并将该时间与设备时间进行比较。您将时间差存储在一个变量中以供以后使用。

2-每次使用Cloud API发送消息时,获取设备时间,加上上面第1步得到的时间差,设置消息时间为这个值。如果您有不同国家的用户,您可能还需要应用与不同时区相关的更正。

祝你好运。

于 2012-09-30T14:47:12.113 回答