Android电源管理(转)
来源:互联网 发布:ios文件上传java 接口 编辑:程序博客网 时间:2024/06/06 23:56
一、 相关概念
1. 出于节电的需要,一般应用在用户一段时间无操作的情况下屏幕变暗,然后进后休眠状态
2. 用户只能在”设置->声音和显示”中设置所有应用默认的屏幕亮度和进行待机的时间
3. 电源管理的实现分内核应用两部分,通过下面介绍的接口,我们可以设置应用程序的电源管理,以控制与其休眠相关的状态(是否需要进入休眠,调整cpu频率,键盘灯的开关,屏幕的亮暗等)
二、 设置电源管理常用的几种状态
PARTIAL_WAKE_LOCK 屏幕关,键盘灯关,不休眠
SCREEN_MID_WAKE_LOCK 屏幕灰,键盘灯关,不休眠
SCREEN_BRIGHT_WEEK_LOCK 屏幕亮,键盘灯关,不休眠
FULL_WAKE_LOCK 屏幕亮,键盘灯亮,不休眠
三、 使用电源管理注意事项
1. 可在onCreate时设置该界面的电源管理,在onDestroy时取消设置
2. 可在onResume时设置该界面的电源管理,在onPause时取消设置
3. 注意设置是以Activity为单位,不是以应用为单位
4. 注意在AndroidManifest.xml中声明该应用有设置电源管理的权限
5. 注意加锁解锁要成对出现
6. 注意多个用途最好用多个锁,不要一锁多用,以免出错
7. 注意对运行在后台和异常时对锁的处理
8. 注意在网络连接或传输时最好加锁,以免传输被中断
9. 注意加锁以保证程序逻辑
四、 代码举例
1. 源码修改
1) 引入电源管理包,以使用相关类
2) 类中加入变量
3) 修改onCreate
4) 修改onDestroy
2. AndroidManifest.xml文件修改
而关于Android Wrapper,修改方法相似,如下:
1. 在src文件夹下找到WrapperActivity,然后在里面引入电源管理包,类中加入变量,修改onCreate,修改onDestroy。
2. mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK,
"XYTEST"); 中的SCREEN_BRIGHT_WAKE_LOCK可以换成二中所述的几种状态。
3. 在根目录下打开AndroidManifest.xml,添加权限<uses-permission android:name="android.permission.WAKE_LOCK"/>,即可实现屏幕保持唤醒状态。
额。最近发现个bug,就是当后台运行之后,屏幕会一直唤醒,现在修正。
在onPause()中,添加
在onResume()中,添加
if
(mWakeLock ==
null
)
{
PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK,
"XYTEST"
);
mWakeLock.acquire();
}
- [转] Android电源管理
- [转] android电源管理
- Android电源管理(转)
- [转]Android WiFi 电源管理
- [转]Android虚拟电源管理驱动
- Android电源管理
- android电源管理
- Android 的电源管理
- Android WiFi 电源管理
- Android电源管理
- Android 的电源管理
- Android电源管理概念
- Android电源管理
- Android电源管理
- Android 电源管理
- Android的电源管理
- Android 电源管理
- Android 电源管理
- javascript结合canvas标签做出来的时钟效果
- 数据结构:线性表
- javascript闭包啊
- C++矩阵类&操作符重载
- Android 使用 URL 和 AsyncTask 加载网络数据
- Android电源管理(转)
- PAT 数素数 C语言版本
- 移动端的兼容性
- 类模板
- 八皇后问题 回溯
- Android中将布局文件/View添加至窗口过程分析 ---- 从setContentView()谈起
- struts2 自定义标签实例
- 最大公约数
- 交叉编译OpenCV2.2.0及移植到Tiny210