我知道我们可以使用System.currentTimeMillis();
来获取Android中的当前时间。
但如果我使用该代码,当用户手动更改时间时,该值将相应更改。
除了从后端通过API获取当前时间(考虑到突然出现低信号),我是否可以使用任何Android API来检测时间变化或实际当前时间?
答案 0 :(得分:1)
我是否可以使用任何Android API来检测时间变化或实际当前时间?
没有。从操作系统的角度来看,用户设置的时间是"实际当前时间"。它是用户的设备,而不是您的设备。
欢迎您考虑其他事项"实际当前时间",但任何此类时间源都将在设备之外,例如GPS信号,SNTP时间服务器等。
答案 1 :(得分:0)
如果您对实际时间不感兴趣,可以尝试SystemClock.uptimeMillis()
或SystemClock.elapsedRealtime()
。
答案 2 :(得分:0)
理论上你可以做以下事情:
记录"实际当前时间"在应用程序生命周期的某个时刻(启动时,首次连接到互联网),并与设备时间进行比较,并记录增量时间(时差)
挂钩用户更改日期/时间..查看stackoverflow帖子:System datetime has changed event,并更新新的增量时间。
似乎比较直接(理论上)。因此,至少如果后端不可用,您可以稍微依赖此增量时间。