在分析PMS的工作原理之前,我们先来分析下PowerManager的用法
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
wl.acquire();
..screen will stay on during this section..
wl.release()
从以上代码中我们可以看出WakeLock用法的关键点
1.new 一个WakeLock对象,同时传入该WakeLock的类型的Flag标志
2.在使用之前调用wakeLock.aquire()获取锁
3.在使用之后调用wakeLock.release()释放锁
WakeLock是Android系统提供给应用程序获取电力资源的方法,只要有应用还在使用WakeLock,系统就不会进入休眠状态。
系统中已经定义看一些wakeLock类型,wakeLock一般只会影响cpu,屏幕和键盘灯三大模块
1. PARTIAL_WAKE_LOCK :cpu一直保持运行,允许屏幕和键盘灯熄灭
2. SCREEN_DIM_WAKE_LOCK :cpu保持运行,屏幕变暗,允许键盘灯熄灭
3. SCREEN_BRIGHT_WAKE_LOCK :cpu保持运行,屏幕亮屏,允许键盘灯熄灭