Android 获取服务器与客户端时差的实例代码
时间:2019-04-12
本文章向大家介绍Android 获取服务器与客户端时差的实例代码,主要包括Android 获取服务器与客户端时差的实例代码使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一般我们在做商品倒计时的时候会遇到要从后台获取商品的开始时间和结束时间,还要计算商品距离开始时间的倒计时和结束时间的倒计时,但是这样只是从后台获取到开始时间,还要再和手机系统的时间相减,才能获取到开始时间的倒计时,那问题来了,如果用户在手机上改了时间呢?是不是就会产生误差,很可能其他人还没开始,就已经有人可以抢购了,这样的体验效果就很差了,所以我们不仅要计算开始时间与当前时间的时差,还要计算服务器与客户端的时差,说了这么多,还是上代码吧:
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 获取服务器与客户端时差的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
- 微信跳一跳之深度实践
- 前端工程师在业余时间如何提高自身能力——造轮子
- 我是如何Hack掉一个机器人!
- SliferMenu详解
- Android 深入ViewPager补间动画,实现类京东商城首页广告Banner切换效果
- android抓屏
- android 仿qq手写板涂鸦
- listview动态获取数据
- toggbutton
- android软件开发之webView.addJavascriptInterface循环渐进【一】
- android的listview item点击详解
- android之surfaceview画图
- viewgroup实现item拖动效果
- Android之ExpandableListView下拉分组的实现
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释