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

更多相关文章

  1. 在Eclipse中进行Android单元测试
  2. 在Eclipse中进行Android单元测试
  3. Android(安卓)View MarqueeView 跑马灯效果
  4. Android学习札记18:Drawable中的setDither()方法
  5. 关于新一代Android的一切Android(安卓)L (2014-07-04)
  6. Android中使用ViewPage进行广告轮播测试代码
  7. Android(安卓)使用Android(安卓)Studio + Gradle 或 命令行 进行
  8. Android(安卓)自定义View之手势解锁控件
  9. Android必备:Android(安卓)Socket编程的了解与学习整理

随机推荐

  1. android 设计模式之单例模式详解
  2. 转: Android开机时桌面Widget的载入流程
  3. Android(安卓)网络应用重点———使用Htt
  4. SQLite3 在应用启动时初始化数据
  5. 【Android(安卓)开发】:UI控件之时间和日
  6. Eclipse 下配置Android开发环境
  7. java go nginx android https 单向 双向
  8. Android(安卓)缓存机制
  9. Android(安卓)IPC进程间通讯机制学习笔记
  10. Android高手进阶教程(九)之 ----Android(