当前位置: 首页 > news >正文

System.currentTimeMillis()与SystemClock.uptimeMillis()

1、System.currentTimeMillis()获取的是系统的时间,可以使用SystemClock.setCurrentTimeMillis(long millis)进行设置。如果使用System.currentTimeMillis()来获取当前时间进行计时,应该考虑监听ACTION_TIME_TICK, ACTION_TIME_CHANGED 和 ACTION_TIMEZONE_CHANGED这些广播ACTION,如果系统时间发生了改变,可以通过监听广播来获取。

 

2、SystemClock.uptimeMillis()表示系统开机到当前的时间总数,单位是毫秒,但是,当系统进入深度睡眠(CPU休眠、屏幕休眠、设备等待外部输入)时间就会停止,但是不会受到时钟缩放、空闲或者其他节能机制的影响。

 

3、SystemClock.elapsedRealtime()和SystemClock.elapsedRealtimeNanos()表示系统开机到当前的时间总数。它包括了系统深度睡眠的时间。这个时钟是单调的,它保证一直计时,即使CPU处于省电模式,所以它是推荐使用的时间计时器。

 

有几种机制,用来控制事件时间: 
1、标准函数Thread.sleep(millis)和Object.wait(millis)是一直被使用的。如果这些函数使用SystemClock.uptimeMillis()时钟,如果设备进入休眠状态,那么提醒时间可能会被推迟到设备唤醒。并且这些同步函数可以被Thread.interrupt()打断。

 

2、SystemClock.sleep(millis)是一个工具函数类似于Thread.sleep(millis),不同的是它忽略了InterruptedException异常,如果你不使用Thread.interrupt()的话,就可以使用这个函数来延迟。

 

3、Handler可以在一个绝对或者相对的时间里同步的调度Runnable对象,它可以使用SystemClock.uptimeMillis()时钟。

 

4、AlarmManager可以设置一个定时器事件,当时间到来的时候,不管设备是否处于深度睡眠或者正在运行,事件都会发生。

 

来自:http://developer.android.com/reference/android/os/SystemClock.html

转载于:https://www.cnblogs.com/bluestorm/p/6928756.html

http://www.xdnf.cn/news/826705.html

相关文章:

  • JavaBean技术
  • Robots协议(爬虫协议、机器人协议)
  • Linux常用命令详解
  • solver及其配置参数详解
  • 叔丁醇钾是什么?叔丁醇钾的分子量和结构式
  • 六种基本网络拓扑结构详解
  • 【常用】Ultra Edit常用设置及快捷键
  • 【Python】全网最详细的Python入门基础教程(非常详细,整理而来)
  • 数据库设计规范
  • 【转载】【5G学习】小区搜索——SSB
  • 数据结构-二叉搜索树/二叉排序树/二叉查找树
  • arm平台下使用bl和ldr跳转应当注意的地方(arm-linux-gcc环境)
  • WOL(Wake On LAN - 局域网唤醒)外网唤醒 配置教程 远程开机
  • Statement和PreparedStatement的区别与联系
  • pcre简介
  • 【网络安全】nmap深度入门讲解
  • 请问一下java在线编程的网站有哪一些?
  • JDK配置环境变量【图文详解】
  • 微服务网关API Geteway
  • 【Oracle database】 Oracle数据库分区表基础
  • Apriori算法详解
  • linux下logcat命令,Android logcat 命令以及 Log机制
  • 好玩的100个网站收藏
  • BDI和CDI理论四个象限的概念特点及其运用
  • MySQL中information_schema详解
  • Java 匿名内部类
  • R730结构
  • 什么是web service
  • java script 技巧_java script学习方法
  • 如何在VMware Workstation上快速构建一个windows 7虚拟机?[手把手辅导教程]