Wakelock API详解
官方资料
http://developer.android.com/intl/zh-CN/reference/android/os/PowerManager.WakeLock.html
http://developer.android.com/intl/zh-CN/reference/android/os/PowerManager.html
示例
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();
Tips
Dim:逐渐变暗
Bright:保持亮度
类型
ACQUIRE_CAUSES_WAKEUP
持锁后唤醒屏幕,其他的类型锁不会唤醒屏幕,而只是保持屏幕常亮,Dim 或 Bright。与PARTIAL_WAKE_LOCK互斥。
FULL_WAKE_LOCK
在Android4.2(API 17)后被废弃,建议采用
FLAG_KEEP_SCREEN_ON代替。
保持屏幕与键盘背光均为最大亮度,当Power键按下后,此锁会被系统释放。屏幕与CPU均关闭,与PARTIAL_WAKE_LOCK相反。
ON_AFTER_RELEASE
当此锁被释放时,将重置用户Activity计时器,能够让屏幕亮的更久些。但是当屏幕没有点亮时,不会唤醒屏幕,如果想这样,请使用ACQUIRE_CAUSES_WAKEUP。与PARTIAL_WAKE_LOCK互斥。
PARTIAL_WAKE_LOCK
持有此锁会使CPU处于运行状态,而屏幕和键盘背光将可以熄灭。如果Power键按下,屏幕会关闭,而CPU会被保持,直到此锁被释放。
SCREEN_BRIGHT_WAKE_LOCK
在Android3.2(API 13)后被废弃,使用
FLAG_KEEP_SCREEN_ON代替。
持锁将保持屏幕背光为最大亮度,而键盘背光可以熄灭。按下Power键后,此锁将会被系统自动释放,释放后屏幕与CPU均关闭。
SCREEN_DIM_WAKE_LOCK
在Android4.2(API 17)后被废弃,使用
FLAG_KEEP_SCREEN_ON代替。
持锁将保持屏幕背光常亮,但可以Dim,键盘背光可以熄灭。同样,在按下Power键后会被系统自动释放,CPU与屏幕均关闭。
使用方法
首先,使用PowerManager的newWakelock方法:
PowerManager.WakeLock newWakeLock(int levelAndFlags, String tag)
作用:新建一个名为tag的levelAndFlags类型的wakelock。
参数:
levelAndFlags:即为上边所介绍的类型;
tag:锁的名字,每个wakelock有唯一的名字。
例:
PowerManager pm = (PowerManager)mContext.getSystemService(
Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(
PowerManager.SCREEN_DIM_WAKE_LOCK
| PowerManager.ON_AFTER_RELEASE,
TAG);
新建成功后,可以使用wakelock的API接口进行操作了。
接口操作
void acquire() 持锁;
void acquire(long timeout) 持锁,timeout毫秒后自动释放;
boolean isHeld() 返回锁的状态,true为正被持锁,false为被释放或未被持锁;
void release() 释放锁;
void setReferenceCounted(boolean value) 设置wakelock的计数机制,默认为计数。true为计数,false为不计数。
计数:每一个acquire必须对应一个release;
不计数:无论有多少个acquire,一个release就可以释放。
void setWorkSource(WorkSource ws) 设置工作域。可能有多个应用将会用到同一个wakelock,这个是用来确认这个wakelock是给哪个应用使用。如service;
String toString() 返回当前目标的一些描述。
关于FLAG_KEEP_SCREEN_ON
FLAG_KEEP_SCREEN_ON
当前窗口在显示给用户的时候,屏幕会保持常亮,Bright。
用法:
Window w = activity.getWindow(); // in Activity's onCreate() for instance
w.setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
);
Wakelock API详解的更多相关文章
- Java 8 Stream API详解--转
原文地址:http://blog.csdn.net/chszs/article/details/47038607 Java 8 Stream API详解 一.Stream API介绍 Java8引入了 ...
- jqGrid APi 详解
jqGrid APi 详解 jqGrid皮肤 从3.5版本开始,jqGrid完全支持jquery UI的theme.我们可以从http://jqueryui.com/themeroller/下载我们所 ...
- hibernate学习(2)——api详解对象
1 Configuration 配置对象 /详解Configuration对象 public class Configuration_test { @Test //Configuration 用户 ...
- 网络编程socket基本API详解(转)
网络编程socket基本API详解 socket socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信. socket ...
- 转】Mahout推荐算法API详解
原博文出自于: http://blog.fens.me/mahout-recommendation-api/ 感谢! Posted: Oct 21, 2013 Tags: itemCFknnMahou ...
- dom4j api 详解--XPath 节点详解
dom4j api 详解 http://871421448.iteye.com/blog/1546955 XPath 节点 http://www.w3school.com.cn/xpath/xpath ...
- 百度地图API详解之事件机制,function“闭包”解决for循环和监听器冲突的问题:
原文:百度地图API详解之事件机制,function"闭包"解决for循环和监听器冲突的问题: 百度地图API详解之事件机制 2011年07月26日 星期二 下午 04:06 和D ...
- 【Unity编程】Unity中关于四元数的API详解
本文为博主原创文章,欢迎转载,请保留出处:http://blog.csdn.net/andrewfan Unity中关于四元数的API详解 Quaternion类 Quaternion(四元数)用于计 ...
- SDN 网络系统之 Mininet 与 API 详解
SDN 网络系统之 Mininet 与 API 详解 Mininet 是轻量级的软件定义网络系统平台,同时提供了对 OpenFlow 协议的支持.本文主要介绍了 Mininet 的相关概念与特性,并列 ...
随机推荐
- poj 2503 Babelfish(Map、Hash、字典树)
题目链接:http://poj.org/bbs?problem_id=2503 思路分析: 题目数据数据量为10^5, 为查找问题,使用Hash或Map等查找树可以解决,也可以使用字典树查找. 代码( ...
- Flex疑难小杂症
本文主要解决Flex中一些小问题,收集一些小技巧(来自网络及个人经验) flex自动换行问题 有时候由于label .button等控件中需要用到text属性显示出文本,文本太长就涉及到换行问题,解 ...
- UC/0S2之基础总结
堆栈,就是在存储器中按数据“后进先出(LIFO)[类比杯子]”的原则组织的连续存储空间,为了满足任务切换和响应中断保存CPU寄存器中的内容及存储任务私有数据的需要,每个任务都应该配有自己的堆栈, 注意 ...
- doctype(文档类型)的作用是什么?转载
<!DOCTYPE> 声明位于文档中的最前面的位置,处于 <html> 标签之前.此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范. Document Type ...
- js中使用this的一些注意事项
先看看这段代码 var x =9; var fobj ={ x:1, test:function(callback){ var x= 2; callback(); } } function pp(){ ...
- html相关介绍
HTML(超文本标记语言) 超文本标记语言,即HTML(Hypertext Markup Language),是用于描述网页文档的一种标记语言 XHTML1.0 可扩展超文本置标语言(eXtensi ...
- RSA, ACS5.X 集成配置
目的是RSA和ACS集成,ACS作为RADIUS服务器提供二次验证服务. ①配置RSA SecurID Token Servers 按照如下网址配置: http://www.cisco.com/c ...
- [Python]小笔记-queue
queue的作用: 队列最大的作用就是先进先出(First in First Out).队列对于解决最短路的时候特别好用. python 2.7: 要使用队列,那么要加载头文件Queue,也就是imp ...
- 微软http api说明书地址
https://msdn.microsoft.com/en-us/library/windows/desktop/aa364622(v=vs.85).aspx https://msdn.microso ...
- 依赖和用jar包得区别
有个项目,需要用到第三方开发的一个jar文件,我先是把生成的jar文件直接拷贝到我的项目的libs目录下,项目自动加载了引用的jar包,在java文件中使用也没有问题,但是由于引用的jar文件中有自定 ...