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

2019-07-13 23:06发布

        使用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