Android 设置屏幕不待机
2015-04-16 15:50
302 查看
转自:http://blog.csdn.net/yudajun/article/details/7748760
最近做项目时正好用到,进行了一下总结:
Android设置支部待机有两种方法
第一种简单通过设置WindowManager属性实现:
在Activity oncreat()方法中设置
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
第二种使用android的PowerManager和PowerManager.WakeLock实现:
//添加锁
[java] view
plaincopy
private void acquireWakeLock() {
if (wakeLock == null) {
Logger.d("Acquiring wake lock");
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, this.getClass().getCanonicalName());
wakeLock.acquire();
}
}
//释放锁
private void releaseWakeLock() {
if (wakeLock != null && wakeLock.isHeld()) {
wakeLock.release();
wakeLock = null;
}
}
acquireWakeLock()方法在Activity的 onResume中被调用。releaseWakeLock()方法在Activity的 onPause中被调用。利用Activiy的生命周期,巧妙的让 acquire()和release()成对出现。
最后不要忘记!
要进行电源的操作需要在AndroidManifest.xml中声明该应用有设置电源管理的权限。
最近做项目时正好用到,进行了一下总结:
Android设置支部待机有两种方法
第一种简单通过设置WindowManager属性实现:
在Activity oncreat()方法中设置
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
第二种使用android的PowerManager和PowerManager.WakeLock实现:
//添加锁
[java] view
plaincopy
private void acquireWakeLock() {
if (wakeLock == null) {
Logger.d("Acquiring wake lock");
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, this.getClass().getCanonicalName());
wakeLock.acquire();
}
}
//释放锁
private void releaseWakeLock() {
if (wakeLock != null && wakeLock.isHeld()) {
wakeLock.release();
wakeLock = null;
}
}
acquireWakeLock()方法在Activity的 onResume中被调用。releaseWakeLock()方法在Activity的 onPause中被调用。利用Activiy的生命周期,巧妙的让 acquire()和release()成对出现。
关于int flags
各种锁的类型对CPU 、屏幕、键盘的影响:
PARTIAL_WAKE_LOCK:保持CPU 运转,屏幕和键盘灯有可能是关闭的。
SCREEN_DIM_WAKE_LOCK:保持CPU 运转,允许保持屏幕显示但有可能是灰的,允许关闭键盘灯
SCREEN_BRIGHT_WAKE_LOCK:保持CPU 运转,允许保持屏幕高亮显示,允许关闭键盘灯
FULL_WAKE_LOCK:保持CPU 运转,保持屏幕高亮显示,键盘灯也保持亮度
最后不要忘记!要进行电源的操作需要在AndroidManifest.xml中声明该应用有设置电源管理的权限。
<uses-permission android:name="android.permission.WAKE_LOCK" /> 你可能还需要 <uses-permission android:name="android.permission.DEVICE_POWER" />
相关文章推荐
- Android屏幕待机时间的获取和设置
- 转:Android 设置屏幕不待机
- Android屏幕待机时间的获取和设置
- Android 设置屏幕不待机
- Android 设置屏幕不待机
- Android 设置屏幕不待机
- Android 设置屏幕不待机
- 在Eclipse Android中设置模拟器屏幕大小
- Android webview设置字体大小,适配屏幕,夜间模式
- android 获取和设置屏幕亮度
- Android获取屏幕分辨率和大小与设置壁纸、动态壁纸
- android 设置系统屏幕亮度
- 自动设置Android控件的占有屏幕的大小
- android手机设置屏幕横竖屏朝向
- Android中获取并设置屏幕亮度
- 利用framework层任意设置Android屏幕的旋转方向
- Android 屏幕旋转(横竖设置)
- Android 根据屏幕大小设置字体
- Android 4.0设置Dialog点击屏幕不消失
- android-设置系统及应用级屏幕亮度