PowerManager.WakeLock电池管理使用详解
来源:互联网 发布:上海对外经贸大学知乎 编辑:程序博客网 时间:2024/05/16 17:44
项目中有用到安卓对电池的操作,需要保持屏幕高亮显示,关于各参数的复合使用什么的感觉很乱,在这里整理一下。
PowerManager的权限声明
PowerManager的任何操作都必须声明权限:
<uses-permission android:name="android.permission.WAKE_LOCK" />
PowerManager.WakeLock的常规使用
对于WeakLock的操作,acquire()方法和release()方法必须成对出现,即加锁之后一定要释放锁。
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK , "My lock"); wakeLock.acquire(); wakeLock.release();
PowerManager的参数
以下4个参数之间只能独立使用
关于屏幕和键盘灯会关闭的理解,例如SCREEN_DIM_WAKE_LOCK,在系统默认的降低屏幕亮度时间到达之后,手机屏幕将会变暗 ,但不会熄屏,键盘灯也会关闭(部分设备键盘灯不关闭)。
使用PARTIAL_WAKE_LOCK锁时,按下电源键,CPU将仍处于运行状态,除非release掉此锁。使用其他三个锁的时候,手机CPU会保持运转,但如果主动按下电源键,CPU将进入休眠。
以下2个参数不可独立使用,必须与上面的参数一起使用
ACQUIRE_CAUSES_WAKE_UP会使屏幕无论在合作状态下,立即高亮显示,但必须配合以上四个参数使用:
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.FULL_WAKE_LOCK |powerManager.ON_AFTER_RELEASE, "My lock"); wakeLock.acquire(); wakeLock.release();
以上复合使用了三个参数 ACQUIRE_CAUSES_WAKE_UP、FULL_WAKE_LOCK、ON_AFTER_RELEASE,含义是让设备无论在何种状态下都立即点亮屏幕并一直保持高亮显示,且在release()之后,设备稍后(系统默认的降低屏幕亮度时间到达之后)关闭屏幕与键盘灯。
注意:
FULL_WAKE_LOCK属性在API 17中不可用。
如果需要在activity级别使屏幕保持高亮,也可以使用WindowManager.LayoutParams中的方法,WindowManager.LayoutParams 是 WindowManager 接口的嵌套类。在activity的onCreate()方法中添加:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
可以使当前可见的activity保持高亮。
- PowerManager.WakeLock电池管理使用详解
- PowerManager和PowerManager.WakeLock详解
- PowerManager.WakeLock电源管理
- PowerManager.WakeLock电源管理
- PowerManager.WakeLock的使用
- PowerManager.WakeLock使用Demo
- PowerManager.WakeLock使用
- Android PowerManager.WakeLock使用小结
- PowerManager.WakeLock的简单使用
- android PowerManager.WakeLock 对电源进行管理
- PowerManager WakeLock
- PowerManager.WakeLock
- PowerManager.WakeLock
- PowerManager.WakeLock
- PowerManager.WakeLock
- PowerManager.WakeLock
- PowerManager和PowerManager.WakeLock
- PowerManager和PowerManager.WakeLock
- Android内部颜色转16进制颜色
- BZOJ1798 [Ahoi2009]Seq 维护序列seq
- Edittext 不弹出系统键盘 且具有光标
- 欢迎使用CSDN-markdown编辑器
- 洛谷 P1007 独木桥
- PowerManager.WakeLock电池管理使用详解
- C#初学者使用file.creat()创建文件后,显示正由另一进程使用
- mysql 哪些情况下用 ` 这个符号?就是键盘上Esc下边那个。
- 最小割---最大权闭合图简介
- Git(一)-Git简介
- OpenSceneGraph实现的NeHe OpenGL教程 - 第三十七课
- Hadoop 基本操作命令
- 微软面试题【飞机加油问题】题解
- PHP4和PHP5共存的环境(主力为PHP4)中PHP5在命令行跑PHP文件中遇到No input file specified.错误解决办法