如何在设备离线时为Android设备获取正确的当前日期和时间

时间:2015-10-31 08:48:13

标签: java android date time

我创建了一个Android应用程序,在这个应用程序中,用户可以保存一些任务。这些任务保存在设备中,当用户上线时,任务将同步到服务器。 我需要知道用户保存任务的正确日期和时间。像Calendar.getInstance()new Date()这样的代码会返回设备时间,如果设备时间不正确,则任务会保存错误的日期。这个应用离线工作很重要。并且由于这个app的厚实,用户可能有意改变设备时间。 抱歉我的英语不好。

1 个答案:

答案 0 :(得分:3)

所以我最终得到了这种情况,在这种情况下,每次设备重启时,用户大多只能连接到互联网一次。

我尝试在用户启动(BOOT_COMPLETED BroadcastReceiver)或网络状态已更改(CONNECTIVITY_CHANGE and WIFI_STATE_CHANGED BroadcastReceiver)时连接到NTP服务器,然后将该日期和SystemClock.elapsedRealtime()存储在数据库中。之后,当我想要正确的日期时,我只需要获得新的SystemClock.elapsedRealtime()并计算此值与来自数据库的elapsedRealtime值的差异,并将该差异添加到我存储在数据库中的日期。