zoukankan      html  css  js  c++  java
  • Android:PowerManager类 电源管理

    PowerManager类用于对设备电源状态进行管理;PowerManager.WakeLock类用于保持设备常亮;Android中通过各种Lock锁对电源进行控制,需要注意的是加锁和解锁必须成对出现。

    使用Activity的生命周期,以调用保持屏幕常亮和释放屏幕常亮动作。

        /**
         * <功能描述> 保持屏幕常亮
          * 
         * @return void [返回类型说明]
         */
        private void keepScreenWake() {
            // 获取WakeLock锁,保持屏幕常亮
            mPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
            mPowerManager.wakeUp(SystemClock.uptimeMillis());
            mWakeLock = mPowerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, this
                    .getClass().getCanonicalName());
            mWakeLock.acquire();
        }

    相应的,需要在Activity的onDestory()中释放屏幕常亮操作。

        /**
         * <功能描述> 释放WakeLock
         * 
         * @return void [返回类型说明]
         */
        private void releaseWakeLock() {
            if (mWakeLock != null && mWakeLock.isHeld()) {
                mWakeLock.release();
                mWakeLock = null;
            }
        }

    关于各种Flag的说明,这些Flag主要对CPU、屏幕和键盘造成影响:

    PARTIAL_WAKE_LOCK:保持CPU运转,屏幕和键盘灯有可能是关闭的;

    SCREEN_DIM_WAKE_LOCK:保持CPU运转,运行保持屏幕显示但有可能是灰色的,运行关闭键盘灯;

    SCREEN_BRIGHT_WAKE_LOCK:保持CPU运转,运行保持屏幕高亮显示,运行关闭键盘灯;

    FULL_WAKE_LOCK:保持CPU运转,保持屏幕高亮显示,键盘灯也保持高亮;

    对上述电源管理的设置,需要获取系统的相关权限:

    <uses-permission android:name="android.permission.DEVICE_POWER" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
  • 相关阅读:
    day 34
    day 33 线程锁
    day 32 操作系统、线程和进程(GIL锁)
    day 31 网络基础的补充
    day 30 多线程 socketserver模块补充
    python自学笔记 2019/07/01
    类与对象的概念
    递归及三种二分法
    好看的颜色
    zend 汉化
  • 原文地址:https://www.cnblogs.com/CVstyle/p/6388082.html
Copyright © 2011-2022 走看看