zoukankan      html  css  js  c++  java
  • Android PowerManager电源管理(Android N )

    ./frameworks/base/core/java/android/os/PowerManager.java该类提供给Application访问电源相关接口。

    它的内部类WakeLock是定义的唤醒锁类,除非你确实需要PowerManager.WakeLock否则不要轻易使用它们,并尽量使用低等级功能,并确保在你不使用它们的时候立即释放PowerManager.WakeLock。

    你可以通过使用Context.getSystemService来获取这个类的实例。
    你会使用到的最主要API就是newWakeLock()。这个方法会实例化一个PowerManager.WakeLock实例,你可以用WakeLock的方法去控制设备的电量状态。

    实际使用十分简单:

    PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);   
    PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");   
    wl.acquire();     
    ..screen will stay on during this section..   
    wl.release();  

    下面是该类的四个功能等级,覆盖了对系统电源的所有影响。这些功能都是互斥的,你只能使用它们中某个。

    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

    如果你使用的是PARTIAL_WAKE_LOCK的锁,CPU会一直保持运行状态,哪怕屏幕展示时间超时甚至用户手动点击电源按钮锁屏也无法改变CPU运行状态。而在其他三个状态的锁下,CPU虽然会运行,但当用户使用电源按钮时,CPU还是会陷入休眠状态。

    注意:在Android N上上表中3个黄色标记的flag已经弃用。被android.view.WindowManager.LayoutParams#FLAG_KEEP_SCREEN_ON所代替。

    方法public boolean isScreenOn()被 isInteractive()替代。当屏幕点亮时发送广播android.content.Intent#ACTION_SCREEN_ON,灭屏时发送android.content.Intent#ACTION_SCREEN_OFF

  • 相关阅读:
    前端数组去重
    前端三栏布局
    JS运行三部曲(预编译)
    前端常用开发工具
    前端性能监控你会监控哪些数据? 如何做?
    H5与客户端交互的方式有哪些? 怎么做?
    http协议的状态码400,401,403,404,500,502,503,301,302等常见网页错误代码
    随笔记录
    Browser Events 常用浏览器事件
    MYSQL 索引的优点
  • 原文地址:https://www.cnblogs.com/wangym/p/7418779.html
Copyright © 2011-2022 走看看