当前位置: 首页 > article >正文

PowerManager详解

PowerManager的作用在于对电源进行管理。

PowerManager相关的接口和设备电池一次性使用时间的长短有很大的关联。除非非要使用时,尽可能最小限度的使用,并且要记得释放。

可以通过调用Context.getSystemService(Context.POWER_SERVICE)获取PowerManager实例。

你可能会用到的最主要的API为:newWakeLock();将创建一个PowerManager.WakeLock对象。可以通过这个对象的API对电源进行管理。下面列举一个实例:

 


下面定义的flag,将一定程度上影响系统电源。这些flags是互斥的,你可以用其中的一个:

PARTIAL_WAKE_LOCK:屏幕和键盘灯允许熄灭;

SCREEN_DIM_WAKE_LOCK:屏幕保持点亮(屏幕将进入DIM状态),键盘灯允许熄灭;

SCREEN_BRIGHT_WAKE_LOCK:屏幕保持点亮,键盘灯允许熄灭;

FULL_WAKE_LOCK:屏幕和键盘灯保持高亮显示;

 

注意:

如果你获取了一个PARTIAL_WAKE_LOCK,CPU将持续运行,与计时器无关(计时器指计算系统休眠的时间,当休眠时间到达某个值时,kernel将停止运行),甚至用户按挂机键也无法停止;其他的WakeLocks,CPU将持续运行,但是用户可以通过按挂机键的方式来使得设备休眠。

 


另外,可以额外添加下面两个flags,此两个flags只能作用于屏幕。但此两个flags和PARTIAL_WAKE_LOCK联合作用时,是无效的。

ACQUIRE_CAUSES_WAKEUP:

正常的WakeLocks是不能点亮屏幕的,然和,他们可以在屏幕点亮后保持点亮状态。ACQUIRE_CAUSES_WAKEUP可以强制点亮屏幕。比较经典的用法是,当重要通知到来时,可以立刻点亮屏幕来通知用户。(比如短信)

 

ON_AFTER_RELEASE:WakeLocks被释放时,时钟将被重置,使得屏幕点亮的时间稍微增长。


常用的API

void goToSleep(long time)

强制设备休眠。

 

Boolean isScreenOn()

判断屏幕是否休眠。

 

PowerManager.WakeLock newWakeLock(int flags, String tag)

 

void userActivity(long when, Boolean noChangeLights)

(这个API没理解,望知道的朋友告知,谢谢)

 


注意:

在使用以上函数的应用程序中,必须在AndroidManifest.xml文件中加入下面的权限:

<uses-permission android:name="android.permission.WAKE_LOCK" />

<uses-permission android:name="android.permission.DEVICE_POWER" />

 

另,其他的点亮屏幕的方法(限于Activity):

getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED

| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON

| WindowManager.LayoutParams.FLAG_TRUE_SCREEN_ON);

 

 

http://www.lryc.cn/news/2417269.html

相关文章:

  • PCB Layout 拉线技巧
  • 批处理常用命令详解
  • 24小时计时器设计logisim_c++日期、时间和计时器
  • 我的javaweb学习笔记
  • 我的第一个网站“爱汉服”
  • 【测试用例设计方法】场景设计法(详解)
  • MyBatis-plus的IPage分页
  • Verilog学习笔记13:使用CPLD内部振荡器
  • WDL脚本实战(一)-工作流、程序体、语法检查、输入输出及运行
  • 视频压缩和分析方面数据集 Tencent Video Dataset (TVD)
  • jQuery 效果 ——fadeIn() 方法、fadeOut() 方法
  • request.setAttribute()和request.getSession().setAttribute()解释
  • 三大工厂模式(简单工厂、工厂方法、抽象工厂)
  • 电力线载波通信PRIME PLC协议最新重要解读
  • Qt 图形视图框架<二>——<QGraphicsView、QGraphicsScene>
  • HTML中的表单
  • input设置为只读模式
  • 二值化神经网络(BNN)基础学习(一)
  • 网络安全中数据加密技术的发展趋势及相关应用
  • mywife.cc 神一样的存在!
  • Vulkan简介
  • Ubuntu之开篇
  • 第7章、单选按钮RadioGroup与复选框CheckBox(从零开始学Android)
  • class类文件结构
  • [创业-18]:财务报表之资产负债表
  • Python pdf2word -- pdf文件转word文件
  • JS+CSS仿admin5站长网首页导航菜单代码
  • 腾讯工蜂的使用
  • ​​Jmeter性能测试(性能测试,Jmeter使用与结果分析)
  • IPsec 9个包分析(主模式+快速模式)