Android入门进阶教程(19)-PowerManager 与电源管理
2013-06-01 18:30
483 查看
PowerManager这个类主要是用来控制电源状态的. 通过使用该类提供的api可以控制电池的待机时间,一般情况下不要使用。如果确实需要使用,那么尽可能的使用最低级别的WakeLocks锁。并且确保使用完后释放它。你可以通过context.getSystemService(Context.POWER_SERVICE)的方式获得PowerManager的实例。在PowerManager中,最主要的newWakeLock方法,如下:
public WakeLock newWakeLock(int flags, String tag)
{
return new WakeLock(flags, tag);
}
这个方法将创建WakeLock对象,通过调用此对象的方法你就可以方便的去控制电源的状态。方法如下:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
wl.acquire();
屏幕将停留在设定的状态,一般为亮、暗状态
wl.release();
释放掉正在运行的cpu或关闭屏幕。
下面定义的flag是在newWakeLock方法中要接收的参数,通过该flag,你可以定义系统的电源的展示效果。比如:
* cpu screen keyboard
* PARTIAL_WAKE_LOCK on off off
* SCREEN_DIM_WAKE_LOCK on dim off
* SCREEN_BRIGHT_WAKE_LOCK on bright off
* FULL_WAKE_LOCK on bright bright
这些flag是相互排斥的,一次只能定义一个。
如果你持有PARTIAL_WAKE_LOCK锁,不论任何定时器甚至是按下电源按钮,cpu都将继续运行,无法进入休眠状态。除非你释放掉它。
其他锁的话,虽然cpu也在运行,但是当用户按下电源按钮时,设备将立刻进入休眠状态。
正常情况下wakelocks实际上是没有被打开的,当需要时,它将通过特定的flag启动屏幕和键盘。 比如在应用中,涉及到向用户发送消息时,需要让用户立刻看到。此时会点亮屏幕。当WakeLock锁被释放的时候,activity的定时器将被重设,这将导致屏幕亮更长的时间。
另外,这篇文章对android中的电源管理架构做了很详细的描述:
http://blog.csdn.net/hzdysymbol/archive/2009/03/19/4004791.aspx
public WakeLock newWakeLock(int flags, String tag)
{
return new WakeLock(flags, tag);
}
这个方法将创建WakeLock对象,通过调用此对象的方法你就可以方便的去控制电源的状态。方法如下:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
wl.acquire();
屏幕将停留在设定的状态,一般为亮、暗状态
wl.release();
释放掉正在运行的cpu或关闭屏幕。
下面定义的flag是在newWakeLock方法中要接收的参数,通过该flag,你可以定义系统的电源的展示效果。比如:
* cpu screen keyboard
* PARTIAL_WAKE_LOCK on off off
* SCREEN_DIM_WAKE_LOCK on dim off
* SCREEN_BRIGHT_WAKE_LOCK on bright off
* FULL_WAKE_LOCK on bright bright
这些flag是相互排斥的,一次只能定义一个。
如果你持有PARTIAL_WAKE_LOCK锁,不论任何定时器甚至是按下电源按钮,cpu都将继续运行,无法进入休眠状态。除非你释放掉它。
其他锁的话,虽然cpu也在运行,但是当用户按下电源按钮时,设备将立刻进入休眠状态。
正常情况下wakelocks实际上是没有被打开的,当需要时,它将通过特定的flag启动屏幕和键盘。 比如在应用中,涉及到向用户发送消息时,需要让用户立刻看到。此时会点亮屏幕。当WakeLock锁被释放的时候,activity的定时器将被重设,这将导致屏幕亮更长的时间。
另外,这篇文章对android中的电源管理架构做了很详细的描述:
http://blog.csdn.net/hzdysymbol/archive/2009/03/19/4004791.aspx
相关文章推荐
- Android入门进阶教程(4)-android hello world开发
- Android入门进阶教程(18)- Looper、MessageQueue、Handler 与消息循环
- Android开发入门与进阶教程
- Android基础入门教程——10.6 PowerManager(电源服务)
- Android入门进阶教程(5)-android 常用组件
- Android基础入门教程——10.6 PowerManager(电源服务)
- Android入门进阶教程(6)-常用组件 ListView、GridView
- Android入门进阶教程(7)-常用组件 TabHost、Gallery
- Android入门进阶教程(20)-ContentProvider 数据共享
- Android入门进阶教程(21)-通知管理器NotificationManager
- Android入门进阶教程(1)-android扫盲
- Android入门进阶教程(11)-远程图片获取和Xml解析
- Android开发视频教程-深入浅出系列Lesson19-AFF110727_蓝牙编程入门
- Android入门进阶教程(11)-远程图片获取和Xml解析
- Android基础入门教程——4.2.2 Service进阶
- Android入门进阶教程(2)-windows 开发环境的搭建
- Android入门进阶教程(8)-常用组件 打电话,发短信简单应用 &单元测试
- Android入门进阶教程(12)-SystemService详解
- Android入门进阶教程(22)-系统广播 BroadcastReceiver详解
- Android入门进阶教程(3)-linux 开发环境的搭建