Android电源管理之二:PowerManager 类wakelock的操作实例

        使用WakeLock可控制电源状态。比如在玩游戏时不允许屏幕变成DIM或者黑屏,那么只需要在启动游戏的activity的onResume函数中获取wakelock,在退出游戏时的activity的onPause函数中释放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;
        }
    }

那如何查看当前系统的wakelock呢?

1,查看linux 的waklock

PowerManagerService.Display:这是屏开着时PowerManagerService对linux层设的wakelock
PowerManagerService.WakeLocks:这是应用层设的wakelock,所有应用程序的设的wakelock在linux层表现成这个wakelock。PowerManagerService会维护所有应用程序的一个wakelock表,当不为空时,向linux层设置PowerManagerService.WakeLocks,为空时取消这个wakelock。
2,查看应用程序 的waklock
# dumpsys power 

除此之外,该命令还可以看到很多其他的系统状态信息和变量,诸如Power Manager State、Settings and Configuration、Screen off timeout、Screen dim duration、Display Controller Locked State、Display Controller Configuration、Display Power State、Display Controller Thread State。




参考原文:http://www.cnblogs.com/keyindex/articles/1819504.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值