转:Android 设置屏幕不待机
2024-10-19 00:31:31
本文转载于: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实现:
//添加锁
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" />
最新文章
- MySQL学习笔记十五:优化(2)
- .Net 闭包理解
- NVelocity+Bootstrap tab控件 异常之
- c++11中的for简化用法
- kafka安装及Kafka-PHP扩展的使用
- 六白话经典算法系列 高速分拣 高速GET
- Quercus
- JVM类加载机制---类加载器
- DP一下,马上出发
- hdu-4825(01字典树)
- laravel console - 自定义命令
- jmeter 发送加密请求 beanshell断言 线程组间传递参数
- zookeeper的配置参数详解(zoo.cfg)
- 拦截器 应用详解--SpringMVC
- avalonJS-源码阅读(一)
- 写一个体验良好的git commit
- C#串口编程测试收发
- dynamic bone unity github
- UEFI下win10+Ubuntu双启动后完全纯净卸载Ubuntu,重建BCD
- 提升PPT制作效率和颜值