Android.os.SystemClock

转载 2015年07月08日 08:10:05

Android.os.SystemClock
文档中对System.currentTimeMillis()进行了相应的描述,就是说它不适合用在需要时间间隔的地方,如Thread.sleep, Object.wait等,因为可以通过System.setCurrentTimeMillis来改变它的值。

要用时间间隔,推荐使用SystemClock中的相关方法。

SystemClock.currentThreadTimeMillis(); // 在当前线程中已运行的时间  
SystemClock.elapsedRealtime(); // 从开机到现在的毫秒书(手机睡眠(sleep)的时间也包括在内)  
SystemClock.uptimeMillis(); // 从开机到现在的毫秒书(手机睡眠的时间不包括在内)  
SystemClock.sleep(100); // 类似Thread.sleep(100);但是该方法会忽略InterruptedException  
SystemClock.setCurrentTimeMillis(1000); // 设置时钟的时间,和System.setCurrentTimeMillis类似 
// 时间间隔  
long timeInterval = SystemClock.uptimeMillis() - lastTime;  
// do something with timeInterval 

android.os.PowerManager
PowerManager的flag的意思:

Java代码

// PowerManager的一般用法,请求和释放唤醒锁  
PowerManager powerMgr = (PowerManager)         getSystemService(Context.POWER_SERVICE);  
int flags = PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP; 
WakeLock wakeLock = powerMgr.newWakeLock(flags, "for debug purpose tag");  
wakeLock.acquire(); // 获取唤醒锁  
wakeLock.release(); // 释放唤醒锁  
// 在游戏中,会将acquire放在onResume中;将release放在onPause,这样在程序运行时就可以保持屏幕常量;在程序处在后台时,就恢复原来的设置。 
// PowerManager的其它api的使用  
powerMgr.goToSleep(SystemClock.uptimeMillis() + 100); // 100ms后进入睡眠  
powerMgr.isScreenOn(); // 屏幕是否亮着  
powerMgr.userActivity(SystemClock.uptimeMillis()+100, true); // 相当于按home键,会引起从睡眠激活 
// WakeLock的其它api  
wakeLock.acquire(1000); // 获取唤醒锁,并在1000ms后释放  
wakeLock.isHeld(); // 当前是否持有唤醒锁  
// 是否使用引用计数,默认是启用的。引用计数应该就是第一次请求为1,第二次加1,再一次再加1。  
// 在释放时,只有引用计数为0时才被视为完全释放(所以要多次调用release)  
wakeLock.setReferenceCounted(true);  

相关文章推荐

android.os.SystemClock类概述

类的概述 核心计时设施。   三种不同的时钟是适合的,并且他们不应该被混淆: System.currentTimeMillis()是一个标准的“墙”时钟(时间和日期)表达毫秒自...

Android_SystemClock类

一、声明: public final class SystemClock extends Object 是一个不可变类。 二、结构: java.lang.Object ...

android SystemClock PowerManager

Android.os.SystemClock 文档中对System.currentTimeMillis()进行了相应的描述,就是说它不适合用在需要时间间隔的地方,如Thread.sleep, Obj...

Android SystemClock类

一、声明 public final class SystemClock extends Object(是一个final类) 二、包结构 java.lang.Object    ↳ a...

Android中的SystemClock类

一、声明: public final class SystemClock extends Object   是一个不可变类。   二、结构: java.lang.Object ...

(Android入门)SystemClock类简介

Class Overview Core timekeeping facilities. Three different clocks are available, and they sho...

SystemClock简介

原文:http://developer.android.com/reference/android/os/SystemClock.html#elapsedRealtime() android.o...
  • hudashi
  • hudashi
  • 2012年02月28日 10:25
  • 7065

STM8S-SystemClock

  • 2017年08月02日 17:13
  • 90KB
  • 下载

android-os

  • 2017年06月30日 14:12
  • 13KB
  • 下载

SystemClock类概述

类的概述 核心计时设施。   三种不同的时钟是适合的,并且他们不应该被混淆: System.currentTimeMillis()是一个标准的“墙”时钟(时间和日期)表达毫秒自纪元。该墙时钟能...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android.os.SystemClock
举报原因:
原因补充:

(最多只允许输入30个字)