程序自定义时钟计算实际时间

项目有这样一个需求:

需要知道某个动作发生的实际时间(注意是实际时间,不受修改系统时间的影响)。


ps:曾经使用线程去计算,定义一个计数器,让线程每隔1000ms+1。开始没问题,第二天发现计算出来的时间和实际时间相差很大,估计是因为线程在某些时候睡眠了(如果

有人知道确切答案麻烦告诉我一声,感谢。)


实现:

主要利用了SystemClock.elapsedRealtime()这个函数。

谷歌官方对这个函数的解析:


简单来说就是能获取到从手机启动到现在的时间戳,包括你线程是否睡眠(ps这个是不是能说明我之前的实现方法不对?)

1、在登录界面获取一个服务器的timestamp ,这个时间是标准的服务器时间。

2、记录下SystemClock.elapsedRealtime()的值 startTime。

3、在需要提交数据的地方,再此获取SystemClock.elapsedRealtime()的值endTime。


则现在的时间realTime =  timestamp+(endTime-startTime) 。

阅读更多
个人分类: JAVA
上一篇Java的string类为什么是不可变的
下一篇Content Provider
想对作者说点什么? 我来说一句

自定义日期时间选择

2017年08月15日 238KB 下载

没有更多推荐了,返回首页

关闭
关闭