`

PowerManager.WakeLock使用(转)

 
阅读更多

使用PowerManager.WakeLock来保证程序运行时保持手机屏幕的恒亮。

    public class WakeLockDemo extends Activity { 
        private PowerManager.WakeLock wakeLock = null; 
     
        //获取锁 
        public void acquireWakeLock(Context context) { 
            if (wakeLock == null) { 
                PowerManager powerManager = (PowerManager)(context.getSystemService(Context.POWER_SERVICE)); 
                wakeLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag"); 
                wakeLock.acquire(); 
            } 
        } 
     
        //释放锁 
        public void releaseWakeLock() { 
            if(wakeLock != null && wakeLock.isHeld()){ 
                wakeLock.release(); 
                wakeLock = null; 
            } 
        } 
     
        @Override 
        public void onCreate() { 
            super.onCreate(); 
             //初始化 
        } 
     
        @Override 
        public void onResume() { 
             acquireWakeLock(this); 
            super.onResume(); 
        } 
     
        @Override 
        public void onPause() { 
             releaseWakeLock(); 
            super.onPause(); 
        } 
     
    } 





各种锁的类型对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())后,手机屏幕仍会继续亮一会儿。
分享到:
评论

相关推荐

    Android powermanger wakelock

    PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, “MyTag”); wl.acquire();//申请锁,这里会调用PowerManagerService里面acquireWakeLock() *********************** wl....

    Android中如何禁止屏幕休眠和锁屏

    禁止屏幕休眠和锁屏可以使用三种方法:使用 WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON、使用 PowerManager.WakeLock 和禁用系统的锁频功能。每种方法都有其优缺,需要根据实际情况选择合适的方法。

    保持Android Service在手机休眠后继续运行的方法

    在使用 PowerManager.WakeLock 时,需要在 Service 中获取 PowerManager 对象,然后使用 newWakeLock() 方法创建 WakeLock 对象,并在 onCreate() 方法中 acquire() 它。在 onDestroy() 方法中,需要 release()Wake...

    Unity调用Android系统PowerManager类功能.zip

    - 唤醒锁(WakeLock):`PowerManager.WakeLock`接口提供了控制设备保持唤醒的能力。开发者可以创建不同类型的唤醒锁,如PARTIAL_WAKE_LOCK(允许CPU运行但不亮屏)或FULL_WAKE_LOCK(CPU运行并亮屏)。创建唤醒锁...

    android WakeLock使用方法代码实例

    然后,我们可以使用 PowerManager 对象来创建一个 WakeLock 实例: ``` PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "Android123"); ``` 这里,我们创建了一个名为 "Android123...

    Android背光控制_2

    通过合理使用`PowerManager`与`WakeLock`,开发者能够在确保良好用户体验的同时,有效管理设备资源,达到功能与效率的平衡。然而,过度或不当的使用也可能导致设备过热、电池快速耗尽等问题,因此在设计时应充分考虑...

    Android锁屏无法继续定位问题

    wakeLock.acquire(); } @Override public void onDestroy() { wakeLock.release(); super.onDestroy(); } 这个写法我表示并没有什么用,并不能强制cpu持续运行。 (2)WakefulBroadcastReceiver public ...

    浅析Wakelock机制与Android电源管理

    在Android系统中,Wakelock机制是通过PowerManager来实现的。PowerManager是Android系统中的一个核心组件,负责管理Android设备的电源状态。PowerManager可以根据不同的电源状态来管理设备的电源,例如睡眠、休眠、...

    android 电源管理

    PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyTag"); wl.acquire(); // 执行相关操作... wl.release(); ``` **注意**: - 必须确保所有创建的醒锁都被正确释放,否则可能导致...

    Android亮屏和熄屏控制实例详解

    wakeLock.acquire(); // 执行需要屏幕保持点亮的操作 // ... wakeLock.release(); ``` 在`acquire()`方法调用后,屏幕会保持点亮,直到调用`release()`方法。如果希望在一段时间后自动释放`WakeLock`,可以使用`...

    android中的屏幕唤醒

    - 在使用`WakeLock`时,务必确保在不再需要保持屏幕亮起时释放它,以避免不必要的电池消耗。 - 使用`DISABLE_KEYGUARD`权限时要特别小心,因为它可能对用户隐私造成潜在威胁,应仅在确实需要的情况下使用。 总之,...

    Android应用程序保持后台唤醒(使用WakeLock实现)

    要使用`WakeLock`,首先需要获取`PowerManager`的实例,并通过`newWakeLock()`方法创建一个`WakeLock`对象。`newWakeLock()`的第一个参数是电源锁的类型,可以是以下几种: 1. `PARTIAL_WAKE_LOCK`: 仅保持CPU运行...

    Android应用源码之一键锁屏功能源码.zip

    wakeLock.acquire(); KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); keyguardManager.requestDismissKeyguard(this, null); wakeLock.release(); ``` 这里,`...

    安卓Android源码——一键锁屏功能源码.zip

    wakeLock.acquire(); // 执行锁屏操作,如调用KeyguardManager或Systemui的相关方法 // 在合适的时间释放WakeLock wakeLock.release(); ``` 此外,源码可能还包含了与UI交互相关的部分,比如创建一个自定义的布局...

    二年第一本书做的PowerManager练习

    wakeLock.acquire(); // 执行关键操作 wakeLock.release(); ``` 释放唤醒锁是非常重要的,因为忘记释放可能会导致设备电池过快消耗。在适当的时间调用`release()`方法以确保设备可以在完成后正常进入休眠状态。 ...

    Android-自己写的一键锁屏APP

    wakeLock.acquire(); KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); keyguardManager.requestDismissKeyguard(this, null); wakeLock.release(); ``` 这段代码首先获取...

    android一键锁屏源代码,android4.2工作正常

    wakeLock.acquire(); ``` 在完成锁屏操作后,别忘了释放这些锁: ```java lock.reenableKeyguard(); wakeLock.release(); ``` 此外,为了使一键锁屏功能可以在任何界面下触发,通常会将其绑定到一个全局的广播接收器...

    Android通过上面的距离传感器控制手机屏幕熄灭

    wakeLock.acquire(); // 屏幕熄灭操作 wakeLock.release(); // 记得在完成后释放WakeLock,以节省电量 ``` 在实际应用中,还需要考虑一些细节,比如在通话结束或挂断时取消监听器,确保传感器事件不再触发。此外,...

Global site tag (gtag.js) - Google Analytics