Android SystemClock 小结
来源:互联网 发布:战地1淘宝哪里买 编辑:程序博客网 时间:2024/05/20 06:53
注意:以后计算时间的间隔,全部使用SystemClock.elapsedRealtime()来进行比较;(可以考虑System.currentTimeMillis)
在Java中我们处理线程同步问题时,处理延迟可能会使用Thread类的sleep方法,这里抛开concurrent类的一些方法;
值得一提的是,这个类还提供了另外一个方法, public static void sleep(long ms),
这个方法就是封装了Thread.sleep方法,但是不会抛出InterruptedException
http://blog.csdn.net/tianfeng701/article/details/7562359
在Andriod中关于线程一部分中经常会遇到计算时间的操作,这里面应用较多的是SystemClock类,这个类仅仅是一个获取系统时间、运行时间的工具类。
这个类有两个主要的静态方法uptimeMillis()和 elapsedRealtime().
我们来看一下这两个函数的实际含义,以下是源码中的注释
Returns milliseconds since boot, not counting time spent in deep sleep.
This value may get reset occasionally
native public static long uptimeMillis();
Returns milliseconds since boot, including time spent in sleep.
native public static long elapsedRealtime();
由此可见,
uptimeMillis()返回的是系统从启动到当前处于非休眠期的时间。
elapsedRealTime()返回的是系统从启动到现在的时间。
值得一提的是,这个类还提供了另外一个方法, public static void sleep(long ms),
这个方法就是封装了Thread.sleep方法,但是不会抛出InterruptedException
-----------------------------------------------------------补充内容-------------------------------------------------------------------------------------------------------
所谓android深度睡眠,即屏幕关闭后,一段时间不做任何操作,不连接usb,然后在一定时间后,手机很多服务、进程都睡眠了,不再运行。
很多情况下,不管是我们自己使用时间间隔来做一些算法,或是调用系统的API,比如动画效果,都会需要基于时间间隔来做,通常做法是:记录开始时间 startTime,然后每次回调时,获取当前时间 currentTime,计算差值 = currentTime - startTime,而获取当前时间,系统提供了两种方法:
SystemClock.uptimeMillis 和 System.currentTimeMillis
这两种方法有何区别呢?
1. SystemClock.uptimeMillis() // 从开机到现在的毫秒数(手机睡眠的时间不包括在内);
2. System.currentTimeMillis() // 从1970年1月1日 UTC到现在的毫秒数;
但是,第2个时间,是可以通过System.setCurrentTimeMillis修改的,那么,在某些情况下,一但被修改,时间间隔就不准了。
- Android SystemClock 小结
- Android SystemClock
- android SystemClock
- Android SystemClock
- Android SystemClock 应用
- Android.os.SystemClock
- Android SystemClock 应用
- Android中的SystemClock类
- Android SystemClock 应用
- Android中的SystemClock类
- android SystemClock PowerManager
- Android中的SystemClock类
- Android.os.SystemClock
- Android.os.SystemClock
- Android:SystemClock 随记
- Android SystemClock类
- android.os.SystemClock
- Android中的SystemClock类
- Zoho推出免费笔记软件App-Notebook
- UVALive 4670 (AC自动机)
- Java反射获取类和对象信息全解析
- android软键盘的监听和手动弹起
- 遍历Map的四种方法
- Android SystemClock 小结
- iOS开发 截屏
- spring结合mongodb报错: 无法将名称 'repository:auditing-attributes' 解析为 'attribute group' 组件
- git入门学习笔记
- CENTOS安装ElasticSearch
- 转载------base64编码
- iOS反地理编码,lbs定位
- mongodb性能参数
- 右手定则和左手定则