我正在开发聊天应用并保存currentTimeMilis
。我正在通过currenttimemilis进行新的排序。当新的条目来到listview更新。但有些人的currenttimemilis价值比其他人更大..所以这是显示新托管的问题
所以我不能得到新的东西......我该怎么办?
答案 0 :(得分:0)
如果在不同的设备上收集调整,则它们将始终因设备而异,因为它们彼此不同步。我只看到解决它的选项:
- 如果即时发送消息,您可以将消息时间设置为消息到达的时间,因为它们“可能”按照发送的顺序到达。 “可能”是因为某些用户可能有较慢的互联网连接可能会延迟消息,但对于大多数用途来说它不应该是有意义的。
- 如果稍后发送消息,则必须连接到时间服务器,从那里获取时间以设置消息。对于corse,您不需要为每条消息连接,只需在应用程序启动时获取设备和服务器之间的时差,然后对每条消息应用该差异。
- 如果您的应用程序需要启用GPS,您还可以从中获取准确的时间。由于GPS使用UTC,您需要对您的时区应用校正。
- 编辑 -
有关如何从时间服务器获取时差的更多细节:
1 - 在应用程序启动时,您连接到时间服务器以获取确切时间并将该时间与设备时间进行比较。您将时差存储在变量中以便稍后使用。
2 - 每次要使用Cloud API发送消息时,都会获得设备时间,添加上面步骤1中获得的时差并将消息时间设置为此值。如果您的用户位于不同的国家/地区,您可能还需要应用与不同时区相关的更正。
祝你好运。