我们正在开发一个Android应用程序,我们需要当前的日期和时间。我们使用API从服务器获取日期和时间。但我们并不想一直沟通。实际上,我们有3个标签。在每个选项卡上,我们都要求服务器提供日期和时间。我们在每个选项卡上都有时间。如果当前时间是下午4:50,我们正在以这种方式填充下拉,然后我们以半小时间隔(即下午5:30 PM,下午6:30,下午6:30,下午7:00等)填充下拉。由于这个原因,标签滑动变得蹩脚。当我在下一个选项卡上滑动时,然后在后台调用服务器以获取日期和时间。直到它没有获得当前的日期和时间。我的申请被绞死了。
我们无法使用系统的日期和时间。因为用户可以更改设备的日期和时间。
我甚至检查过网络提供商。它提供SIM卡。它仅适用于Wi-Fi设备。
有没有办法获得当前的日期和时间?
提前致谢!
PRASHANT。
答案 0 :(得分:3)
您可以在连接到服务器时验证时间和日期,并将差异与系统日期一起注册。
然后,您将能够使用该下拉列表填充下拉列表,并在从服务器接收更新时更正下拉列表。
答案 1 :(得分:1)
只是一个消息,而且我不是Android开发者,所以如果我错了,请纠正我!
http://developer.android.com/reference/android/os/SystemClock.html
您可以使用系统中的uptimeMillis。
当应用程序启动时,调用服务器获取实际时间,之后,使用uptimeMillis中的差异来计算确切的日期和时间,而无需额外的服务器调用。
出于好奇(因为我不是Android开发人员) 如果用户打开应用程序,计算timediff,移动app te background,更改设备时间然后重新打开相同的"实例"会发生什么?来自背景?
答案 2 :(得分:0)
可能有帮助
Time today = new Time(Time.getCurrentTimezone());
today.setToNow();
不太确定,但值得一试,因为我的设备是在wifi上,这适用于没有SIM卡的平板电脑
答案 3 :(得分:0)
在启动时只从服务器获取一次时间,在本地保存设备时间的差异,从这里你可以根据设备时间推断出其他所需的时间:
标签时间=设备时间 - 服务器时间差异+标签差异时间