zoukankan      html  css  js  c++  java
  • 电源关系

    引用:http://blog.chinaunix.net/uid-24448954-id-3169853.html

    owerManager这个类主要是用来控制电源状态的. 通过使用该类提供的api可以控制电池的待机时间,一般情况下不要使用。如果确实需要使用,那么尽可能的使用最低级别的WakeLocks锁。并且确保使用完后释放它。你可以通过context.getSystemService(Context.POWER_SERVICE)的方式获得PowerManager的实例。在PowerManager中,最主要的newWakeLock方法,如下:


        public WakeLock newWakeLock(int flags, String tag)
        {
            return new WakeLock(flags, tag);
        }
        这个方法将创建WakeLock对象,通过调用此对象的方法你就可以方便的去控制电源的状态。方法如下:
        
        PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
        PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
        wl.acquire();
          屏幕将停留在设定的状态,一般为亮、暗状态
        wl.release();
          释放掉正在运行的cpu或关闭屏幕。


    下面定义的flag是在newWakeLock方法中要接收的参数,通过该flag,你可以定义系统的电源的展示效果。比如:
     *                                                 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
     
      这些flag是相互排斥的,一次只能定义一个。

    如果你持有PARTIAL_WAKE_LOCK锁,不论任何定时器甚至是按下电源按钮,cpu都将继续运行,无法进入休眠状态。除非你释放掉它。
    其他锁的话,虽然cpu也在运行,但是当用户按下电源按钮时,设备将立刻进入休眠状态。

     正常情况下wakelocks实际上是没有被打开的,当需要时,它将通过特定的flag启动屏幕和键盘。 比如在应用中,涉及到向用户发送消息时,需要让用户立刻看到。此时会点亮屏幕。当WakeLock锁被释放的时候,activity的定时器将被重设,这将导致屏幕亮更长的时间。

    另外,这篇文章对android中的电源管理架构做了很详细的描述:

    http://blog.csdn.net/hzdysymbol/archive/2009/03/19/4004791.aspx

  • 相关阅读:
    用 .Net WebBrowser 控件获取POST数据
    yield再理解--绝对够透彻
    Keras 和 PyTorch 的对比选择
    Keras -Python编写的开源人工神经网络库
    Python 加密之 生成pyd文件
    FPN全解-特征金字塔网络
    RetinaNet(Focal Loss)
    Focal Loss for Dense Object Detection(Retina Net)
    ImageNet Classification-darknet
    Darknet
  • 原文地址:https://www.cnblogs.com/sode/p/2851339.html
Copyright © 2011-2022 走看看