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

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

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

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