Android: PowerManager.WakeLock

长平狐 发布于 2012/06/20 11:03
阅读 515
收藏 0

【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”

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

Flag Value CPU Screen Keyboard
PARTIAL_WAKE_LOCK On* Off Off
SCREEN_DIM_WAKE_LOCK On Dim Off
SCREEN_BRIGHT_WAKE_LOCK On Bright Off
FULL_WAKE_LOCK On Bright Bright

 

 

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();  

 

 

 

 


原文链接: http://blog.csdn.net/zmyde2010/article/details/6079722
加载中
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部