Android中3种时间获取方法的差异
2014-07-22 16:31
141 查看
原帖地址
http://blog.sina.com.cn/s/blog_566b36c60100ybiz.html
也许我们从来不在意获取时间方面的差异,不过如果你仔细阅读文档会发现,android中,有3种不同的时间获取方法:他们之间是存在差异的,并且根据这些差异,应该用在不同的地方。
在android.os.SystemClock这个类中,文档详细的阐述了3种方法的差异和适用范围。
System.currentTimeMillis()像一个标准的挂钟("wall" clock)一样(时间和日期)描述了自从世界协调时间1970年1月1日0:00到现在的时间差,以毫秒为单位计算。但是这个时间可以通过用户或电话的网络来修改(可以使用setCurrentTimeMillis(long)来修改),因此这个时间就变得不可预测。所以通常情况下,我们应该在与
真实世界相关的地方使用这个时间。例如日历或者闹钟,而内部时间或者计算流逝掉的时间应该采用不同的方法。如果非要用System.currentTimeMillis(),那么应该设置一个监听器来监听 ACTION_TIME_TICK, ACTION_TIME_CHANGED 和 ACTION_TIMEZONE_CHANGED 这三个Intent广播,当时间发生改变的时候。
uptimeMillis() 则是从系统启动之后开始即时,当系统进入深度休眠(如CPU关闭,屏幕关闭,设备等待外部输入)的时候停止。但是不会受到时钟调整,空闲,或者其他节能机制的影响。这个方法是大多数内部计时的基础。如Thread.sleep(millis), Object.wait(millis) 和 System.nanoTime()。这个计时器保证不会发生变化。对于用户界面事件,和相关的处理,推荐采用这个计时器
elapsedRealtime()这个即时会从系统启动之后一直运行,即使进入深度休眠(CPU关闭,屏幕关闭)也不会停止,适用于需要跨越多个休眠周期的计时。
http://blog.sina.com.cn/s/blog_566b36c60100ybiz.html
也许我们从来不在意获取时间方面的差异,不过如果你仔细阅读文档会发现,android中,有3种不同的时间获取方法:他们之间是存在差异的,并且根据这些差异,应该用在不同的地方。
在android.os.SystemClock这个类中,文档详细的阐述了3种方法的差异和适用范围。
System.currentTimeMillis()像一个标准的挂钟("wall" clock)一样(时间和日期)描述了自从世界协调时间1970年1月1日0:00到现在的时间差,以毫秒为单位计算。但是这个时间可以通过用户或电话的网络来修改(可以使用setCurrentTimeMillis(long)来修改),因此这个时间就变得不可预测。所以通常情况下,我们应该在与
真实世界相关的地方使用这个时间。例如日历或者闹钟,而内部时间或者计算流逝掉的时间应该采用不同的方法。如果非要用System.currentTimeMillis(),那么应该设置一个监听器来监听 ACTION_TIME_TICK, ACTION_TIME_CHANGED 和 ACTION_TIMEZONE_CHANGED 这三个Intent广播,当时间发生改变的时候。
uptimeMillis() 则是从系统启动之后开始即时,当系统进入深度休眠(如CPU关闭,屏幕关闭,设备等待外部输入)的时候停止。但是不会受到时钟调整,空闲,或者其他节能机制的影响。这个方法是大多数内部计时的基础。如Thread.sleep(millis), Object.wait(millis) 和 System.nanoTime()。这个计时器保证不会发生变化。对于用户界面事件,和相关的处理,推荐采用这个计时器
elapsedRealtime()这个即时会从系统启动之后一直运行,即使进入深度休眠(CPU关闭,屏幕关闭)也不会停止,适用于需要跨越多个休眠周期的计时。
相关文章推荐
- Android中3种时间获取方法的差异
- Android中3种时间获取方法的差异
- 【Android/java】3种时间获取方法的差异
- cocos2d-x在win32和iOS、android下获取当前系统时间的方法
- Android 通过NTP服务器自动获取时间的方法
- 关于java 和 android 下获取指定时间是本年第几周不一致问题的解决方法
- JS Date当前时间:获取日期时间方法在各浏览器中的差异
- Android中为何获取系统时间的方法多次执行后时间仍不变,解决方法
- Android各代码层获取系统时间的方法
- Android 最简单的获取系统时间并且格式化的方法
- android 获取系统时间的几种方法
- android获取经纬度3种方法
- java&Android获取时间的常用方法
- Android各代码层获取系统时间的方法
- Android 获取当日时间的方法
- Android 通过NTP服务器自动获取时间的方法
- Android获取系统时间方法的总结
- Android 获取当前系统时间的两种方法
- android获取今天00:00时间戳的方法
- Android多种方法获取系统时间