时间:2021-05-21
一般我们在做商品倒计时的时候会遇到要从后台获取商品的开始时间和结束时间,还要计算商品距离开始时间的倒计时和结束时间的倒计时,但是这样只是从后台获取到开始时间,还要再和手机系统的时间相减,才能获取到开始时间的倒计时,那问题来了,如果用户在手机上改了时间呢?是不是就会产生误差,很可能其他人还没开始,就已经有人可以抢购了,这样的体验效果就很差了,所以我们不仅要计算开始时间与当前时间的时差,还要计算服务器与客户端的时差,说了这么多,还是上代码吧:
1.在项目启动的时候获取时差并保存
/** * 获取时差并保存 * @param context */public static void getDifferenceTime(final Context context){ new Thread(new Runnable() { @Override public void run() { try { URL url = new URL(CONTENT_URL); //生成URLConnection连接对象 URLConnection uc = url.openConnection(); //发出连接 uc.connect(); //获取服务器时间 long serverTime = uc.getDate(); //获取服务器时间与手机系统时间的时差 long differenceTime = serverTime - System.currentTimeMillis(); //保存时差 SaveUtil.getInstance(context).setDifferenceTime(differenceTime); } catch (Exception e) { e.printStackTrace(); } } }).start();}2.Adapter中计算开始时间倒计时
//获取列表中商品的开始时间String startTimeStr = list.get(position).getStartTime();long startTime = stringToLong(startTimeStr);//活动开始时间-手机时间-服务器时间与手机时间的相差值 = 活动开始倒计时long remainingTime = startTime - System.currentTimeMillis() - SaveUtil.getInstance(mContext).getDifferenceTime();结束时间与上述方法相同,就不再次粘代码了。我知道需要需要改进的地方还有很多,大家不要喷的太厉害了~
以上这篇Android 获取服务器与客户端时差的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Android客户端请求服务器端的详细解释1.Android客户端与服务器端通信方式:Android与服务器通信通常采用HTTP通信方式和Socket通信方式,
本文实例讲述了Android编程之客户端通过socket与服务器通信的方法。分享给大家供大家参考,具体如下:下面是一个demo,Android客户端通过sock
开发中发现,服务器偶尔会发送错误格式json给Android客户端,导致Android客户端json解析失败,应用异常.并非服务器有意坑客户端,而是客户端请求服
本文实例为大家分享了java客户端向服务器上传文件的具体代码,供大家参考,具体内容如下先来了解一下客户端与服务器Tcp通信的基本步骤:服务器端先启动,然后启动客
Android跟服务器交互数据,有时数据量大时,就需要以xml形式的交互数据。这里来实现服务器给Android客户端发送xml数据,Android客户端解析。服