Android: PowerManager.WakeLock

来源:互联网 发布:姚笛长相知乎 编辑:程序博客网 时间:2024/04/30 12:36

Android中通过各种Lock锁对电源进行控制:

Flag ValueCPUScreenKeyboardPARTIAL_WAKE_LOCKOn*OffOffSCREEN_DIM_WAKE_LOCKOnDimOffSCREEN_BRIGHT_WAKE_LOCKOnBrightOffFULL_WAKE_LOCKOnBrightBright

 

 

private static PowerManager.WakeLock mWakeLock;

 

PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);

mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);

 

加锁:

mWakeLock.acquire();   

 

解锁:

mWakeLock.release();  

 

需要注意:

0. WakeLock是activity级的

1. 加锁/解锁必须成对出现

2. 可以多次加锁,同时解锁次数等于加锁次数才能完成解锁

3. 未加锁时进行解锁操作会抛出异常,程序挂掉

 

可以用下面的方法保证不多次加锁及未加锁时进行解锁:

 

    if (!mWakeLock.isHeld())

    mWakeLock.acquire();  

 

 

 

    if (mWakeLock.isHeld())

    mWakeLock.release();  

 

 

 

 

原创粉丝点击