客户端同步服务器端时间方案

/**
* @描述 时间管理器,用来同步服务器上的时间,由于设备的时间通常不太准确
* 记录方法:先请求服务器上的时间,记录下来,同时记录下当前的elapsedRealtime值,
* 需要获取当前时间时,用最新的elapsedRealtime值减去之前记录的elapsedRealtime值,
* 再加上之前记录的服务器时间即为最新的当前时间
*
* @作者 tll
* @时间 2016/10/18
*/
public class TimeManger {
/**
* 从服务端获取到的时间戳
*/
private long currentTimeMillis;
/**
* 自开机后到当前设置时间的时间间隔
*/
private long elapsedRealtime;

/** 设置当前的时间戳*/
public void setCurrentTimeMillis(long currentTimeMillis) {
this.currentTimeMillis = currentTimeMillis;
setElapsedRealtime(TimeUtil.elapsedRealtime());
}

public void setElapsedRealtime(long elapsedRealtime) {
this.elapsedRealtime = elapsedRealtime;
}

/** 获取当前的时间戳*/
public long getCurrentTimeMillis() {
// 时间间隔
long dis = TimeUtil.elapsedRealtime() - elapsedRealtime;
// 用服务器上拿到的时间加上时间间隔即为当前的时间
return currentTimeMillis + dis;
}
}

TimeUtil.java
/** 自开机后,经过的时间,包括深度睡眠的时间*/
public static long elapsedRealtime()
{
return SystemClock.elapsedRealtime();
}

/** 自开机后,经过的时间,不包括深度睡眠的时间*/
public static long uptimeMillis()
{
return SystemClock.uptimeMillis();
}
 

转载于:https://www.cnblogs.com/baiyi168/p/5973326.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值