Android: PowerManager.WakeLock
16lz
2021-12-04
Android中通过各种Lock锁对电源进行控制:
PARTIAL_WAKE_LOCK
SCREEN_DIM_WAKE_LOCK
SCREEN_BRIGHT_WAKE_LOCK
FULL_WAKE_LOCK
On* | Off | Off |
On | Dim | Off |
On | Bright | Off |
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();
更多相关文章
- EditText横屏时,弹出软件盘时不进行全屏
- Delphi在Android下通过WiFI进行调试
- Android——消息机制
- Android调用系统自带的文件管理器进行文件选择并获得路径,android
- Android(安卓)用代码动态添加View(ViewGroup.addView()),并进行动
- Android札记【2】——系统的认识心中的Android[首届 Google 暑期
- android介绍以及学习方法
- android设备连接到pc进行应用程序调试
- Mars视频跟踪之android中的Thread