Android 获取服务器与客户端时差的实例代码

所属分类: 软件编程 / Android 阅读数: 60
收藏 0 赞 0 分享

一般我们在做商品倒计时的时候会遇到要从后台获取商品的开始时间和结束时间,还要计算商品距离开始时间的倒计时和结束时间的倒计时,但是这样只是从后台获取到开始时间,还要再和手机系统的时间相减,才能获取到开始时间的倒计时,那问题来了,如果用户在手机上改了时间呢?是不是就会产生误差,很可能其他人还没开始,就已经有人可以抢购了,这样的体验效果就很差了,所以我们不仅要计算开始时间与当前时间的时差,还要计算服务器与客户端的时差,说了这么多,还是上代码吧:

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 获取服务器与客户端时差的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

Android网络编程之获取网络上的Json数据实例

这篇文章主要介绍了Android网络编程之获取网络上的Json数据实例,本文用完整的代码实例讲解了在Android中读取网络中Json数据的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中的windowSoftInputMode属性详解

这篇文章主要介绍了Android中的windowSoftInputMode属性详解,本文对windowSoftInputMode的9个属性做了详细总结,需要的朋友可以参考下
收藏 0 赞 0 分享

Android网络编程之UDP通信模型实例

这篇文章主要介绍了Android网络编程之UDP通信模型实例,本文给出了服务端代码和客户端代码,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中使用ListView实现漂亮的表格效果

这篇文章主要介绍了Android中使用ListView实现漂亮的表格效果,本文用详细的代码实例创建了一个股票行情表格,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中刷新界面的二种方法

这篇文章主要介绍了Android中刷新界面的二种方法,本文使用Handler、postInvalidate两种方法实现界面刷新,需要的朋友可以参考下
收藏 0 赞 0 分享

Android SDK三种更新失败及其解决方法

这篇文章主要介绍了Android SDK三种更新失败及其解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(一)

Android3.0(API level 11)开始,Android设备不再需要专门的菜单键。随着这种变化,Android app应该取消对传统6项菜单的依赖。取而代之的是提供anction bar来提供基本的用户功能
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(二)

这次将继续上一篇文章没有讲完的Menu的学习,上下文菜单(Context menu)和弹出菜单(Popup menu)
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(三)

今天继续昨天没有讲完的Menu的学习,主要是Popup Menu的学习,需要的朋友可以参考下
收藏 0 赞 0 分享

Android显示网络图片实例

这篇文章主要介绍了Android显示网络图片的方法,以实例形式展示了Android程序显示网络图片的方法,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多