Android WakeLock的使用

// PowerManager的一般用法,请求和释放唤醒锁   

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

int flags = PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP;   

WakeLock wakeLock = powerMgr.newWakeLock(flags, "for debug purpose tag");   

wakeLock.acquire(); // 获取唤醒锁   

wakeLock.release(); // 释放唤醒锁   

// 在游戏中,会将acquire放在onResume中;将release放在onPause,这样在程序运行时就可以保持屏幕常量;在程序处在后台时,就恢复原来的设置。   

   

// PowerManager的其它api的使用   

powerMgr.goToSleep(SystemClock.uptimeMillis() + 100); // 100ms后进入睡眠   

powerMgr.isScreenOn(); // 屏幕是否亮着   

powerMgr.userActivity(SystemClock.uptimeMillis()+100, true); // 相当于按home键,会引起从睡眠激活   

  

// WakeLock的其它api   

wakeLock.acquire(1000); // 获取唤醒锁,并在1000ms后释放   

wakeLock.isHeld(); // 当前是否持有唤醒锁   

// 是否使用引用计数,默认是启用的。引用计数应该就是第一次请求为1,第二次加1,再一次再加1。   

// 在释放时,只有引用计数为0时才被视为完全释放(所以要多次调用release)   

wakeLock.setReferenceCounted(true);   


各种锁的类型对CPU 、屏幕、键盘的影响: 

PARTIAL_WAKE_LOCK:       保持CPU 运转,屏幕和键盘灯可以关闭。 

SCREEN_DIM_WAKE_LOCK:   保持CPU 运转,保持屏幕显示,但可以变暗,允许键盘灯关闭。 

 SCREEN_BRIGHT_WAKE_LOCK:保持CPU 运转,允许保持屏幕高亮显示,允许键盘灯关闭。 

 FULL_WAKE_LOCK:         保持CPU 运转,保持屏幕和键盘灯都高亮显示。 

 ACQUIRE_CAUSES_WAKEUP:  当获取锁后,立刻亮屏,典型地使用在通知中,以让用户立刻查看。 

 ON_AFTER_RELEASE:       在释放锁(release())后,手机屏幕仍会继续亮一会儿。 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值