PowerManager详解
来源:互联网 发布:maxwell render mac 编辑:程序博客网 时间:2024/05/29 11:12
PowerManager的作用在于对电源进行管理。
PowerManager相关的接口和设备电池一次性使用时间的长短有很大的关联。除非非要使用时,尽可能最小限度的使用,并且要记得释放。
可以通过调用Context.getSystemService(Context.POWER_SERVICE)获取PowerManager实例。
你可能会用到的最主要的API为:newWakeLock();将创建一个PowerManager.WakeLock对象。可以通过这个对象的API对电源进行管理。下面列举一个实例:
- PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
- PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "helloyuling");
- wl.acquire();
- ...screen will stay on during this section.
- wl.release();
下面定义的flag,将一定程度上影响系统电源。这些flags是互斥的,你可以用其中的一个:
PARTIAL_WAKE_LOCK:屏幕和键盘灯允许熄灭;
SCREEN_DIM_WAKE_LOCK:屏幕保持点亮(屏幕将进入DIM状态),键盘灯允许熄灭;
SCREEN_BRIGHT_WAKE_LOCK:屏幕保持点亮,键盘灯允许熄灭;
FULL_WAKE_LOCK:屏幕和键盘灯保持高亮显示;
注意:
如果你获取了一个PARTIAL_WAKE_LOCK,CPU将持续运行,与计时器无关(计时器指计算系统休眠的时间,当休眠时间到达某个值时,kernel将停止运行),甚至用户按挂机键也无法停止;其他的WakeLocks,CPU将持续运行,但是用户可以通过按挂机键的方式来使得设备休眠。
另外,可以额外添加下面两个flags,此两个flags只能作用于屏幕。但此两个flags和PARTIAL_WAKE_LOCK联合作用时,是无效的。
ACQUIRE_CAUSES_WAKEUP:
正常的WakeLocks是不能点亮屏幕的,然和,他们可以在屏幕点亮后保持点亮状态。ACQUIRE_CAUSES_WAKEUP可以强制点亮屏幕。比较经典的用法是,当重要通知到来时,可以立刻点亮屏幕来通知用户。(比如短信)
ON_AFTER_RELEASE:WakeLocks被释放时,时钟将被重置,使得屏幕点亮的时间稍微增长。
常用的API
void goToSleep(long time)
强制设备休眠。
Boolean isScreenOn()
判断屏幕是否休眠。
PowerManager.WakeLock newWakeLock(int flags, String tag)
void userActivity(long when, Boolean noChangeLights)
(这个API没理解,望知道的朋友告知,谢谢)
注意:
在使用以上函数的应用程序中,必须在AndroidManifest.xml文件中加入下面的权限:
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DEVICE_POWER" />
另,其他的点亮屏幕的方法(限于Activity):
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_TRUE_SCREEN_ON);
- PowerManager详解
- PowerManager详解
- PowerManager和PowerManager.WakeLock详解
- Android PowerManager 详解
- android PowerManager 详解
- anddroid电源管理powerManager详解
- PowerManager
- PowerManager
- PowerManager
- PowerManager
- PowerManager.WakeLock电池管理使用详解
- PowerManager和PowerManager.WakeLock
- PowerManager和PowerManager.WakeLock
- PowerManager简介
- PowerManager源码
- PowerManager WakeLock
- PowerManager简介
- PowerManager.WakeLock
- JSON与XML的区别
- amd64软件优化学习笔记(未完待续)
- asterisk的sip.conf中nat选项说明
- 去除按钮、链接边框黑线小结
- Selenium-webdriver系列教程(7)———如何处理alert和confirm
- PowerManager详解
- Android 4.0 的镜像文件
- 串口编程
- Flash加入收藏夹,设为首页等使用函数
- oracle伪列示例。在大表中作用尤为明显。
- 如何简单测试Rman的备份恢复功能?
- Eclipse快捷键大全(转载)
- struct linger 设置socket断开连接的方式
- ALSA之CODEC分析