PowerManager.WakeLock
来源:互联网 发布:乐视手机网络时间同步 编辑:程序博客网 时间:2024/04/30 07:23
PowerManager.WakeLock
if (wakeLock == null) {
Logger.d("Acquiring wake lock");
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK,this.getClass().getCanonicalName());
wakeLock.acquire();
}
}
private void releaseWakeLock() {
if (wakeLock != null && wakeLock.isHeld()) {
wakeLock.release();
wakeLock = null;
}
}
protected void onResume()
{
super.onResume();
//获取锁,保持屏幕亮度
acquireWakeLock();
startTimer();
}
- PowerManager
pm = (PowerManager) getSystemService(Context.POWER_SERVICE);通过 Context.getSystemService()
.方法获取PowerManager实例。 - 然后通过PowerManager的newWakeLock((intflags,
String tag)来生成WakeLock实例。intFlags指示要获取哪种WakeLock,不同的Lock对cpu 、屏幕、键盘灯有不同影响。 - 获取WakeLock实例后通过acquire()获取相应的锁,然后进行其他业务逻辑的操作,最后使用release()释放(释放是必须的)。
关于int flags
PARTIAL_WAKE_LOCK:保持CPU 运转,屏幕和键盘灯有可能是关闭的。
SCREEN_DIM_WAKE_LOCK:保持CPU 运转,允许保持屏幕显示但有可能是灰的,允许关闭键盘灯
SCREEN_BRIGHT_WAKE_LOCK:保持CPU 运转,允许保持屏幕高亮显示,允许关闭键盘灯
FULL_WAKE_LOCK:保持CPU 运转,保持屏幕高亮显示,键盘灯也保持亮度
ACQUIRE_CAUSES_WAKEUP:Normal wake locks don't actually turn on the illumination. Instead, they cause the illumination to remain on once it turns on (e.g. from user activity). This flag will force the screen and/or keyboard to turn on immediately, when the WakeLock is acquired. A typical use would be for notifications which are important for the user to see immediately.
ON_AFTER_RELEASE:f this flag is set, the user activity timer will be reset when the WakeLock is released, causing the illumination to remain on a bit longer. This can be used to reduce flicker if you are cycling between wake lock conditions.
权限获取
你可能还需要
<uses-permission android:name="android.permission.DEVICE_POWER" />
*如果你获得一个不完整的wakelock,则CPU会继续运行,不必顾及任何计时器甚至用户按下power键后。对于所有的其他的wakelock,CPU在运行,但用户可以直接用power键使设备休眠。
*If you hold a partial wakelock, the CPU will continue to run, irrespective of any timers and even after the user presses the power button. In all other wakelocks, the CPU will run, but the user can still put the device to sleep using the power button.
另外,你能加两个以上的标志,这些仅能影响屏幕的行为。这些标志当组合中有一个PARTIAL_WAKE_LOCK时将没有效果。
In addition, you can add two more flags, which affect behavior of the screen only. PARTIAL_WAKE_LOCK
.
Flag Value
Description
ACQUIRE_CAUSES_WAKEUP
正常的wake lock不会实际转到照明。反而,他们使照明保持自他打开时(例如,来自用户activity)。这个标志会强制屏幕和/或键盘立即打开,当这个wakelock已获取时。一个典型用法是将哪些重要的通知立即让用户看到。
Normal wake locks don't actually turn on the illumination. Instead, they cause the illumination to remain on once it turns on (e.g. from user activity). This flag will force the screen and/or keyboard to turn on immediately, when the WakeLock is acquired. A typical use would be for notifications which are important for the user to see immediately.
ON_AFTER_RELEASE
如果这个标志被设置,用户activity计时器当WakeLock被释放时会重新设定,因为照明保持一点长。这个可以用于降低闪烁如果你是在wake lock状态下循环。
If this flag is set, the user activity timer will be reset when the WakeLock is released, causing the illumination to remain on a bit longer. This can be used to reduce flicker if you are cycling between wake lock conditions.
Summary
Nested Classes
class
PowerManager.WakeLock
类让你说你需要有这个设备。
Class lets you say that you need to have the device on.
Constants
int
ACQUIRE_CAUSES_WAKEUP
正常的wake lock不会实际的唤醒设备,他们自他准备好则保持着。
Normally wake locks don't actually wake the device, they just cause it to remain on once it's already on.
int
FULL_WAKE_LOCK
Wake lock
Wake lock that ensures that the screen and keyboard are on at full brightness.
int
ON_AFTER_RELEASE
当这个wake lock已释放时,拨开了用户界面的计时器所以屏幕停留稍微长。
When this wake lock is released, poke the user activity timer so the screen stays on for a little longer.
int
PARTIAL_WAKE_LOCK
Wake lock以确保CPU运行。
Wake lock that ensures that the CPU is running.
int
SCREEN_BRIGHT_WAKE_LOCK
Wake lock以确保屏幕全亮;键盘背光允许关闭。
Wake lock that ensures that the screen is on at full brightness; the keyboard backlight will be allowed to go off.
int
SCREEN_DIM_WAKE_LOCK
Wake lock以确保屏幕打开(但可以是暗淡的);键盘背光将允许关闭。
Wake lock that ensures that the screen is on (but may be dimmed); the keyboard backlight will be allowed to go off.
Public Methods
void
goToSleep(long time)
强制设备进入休眠。
Force the device to go to sleep.
boolean
IsScreenOn()
返回屏幕是否当前亮着。
Returns whether the screen is currently on.
PowerManager.WakeLock
newWakeLock(int flags,
得到一个Wake lock在这个标志参数的级别。
Get a wake lock at the level of the flags parameter.
void
reboot(String
重启设备
Reboot the device.
void
userActivity(long when, boolean noChangeLights)
用户界面发生。
User activity happened.
- PowerManager WakeLock
- PowerManager.WakeLock
- PowerManager.WakeLock
- PowerManager.WakeLock
- PowerManager.WakeLock
- PowerManager.WakeLock
- PowerManager和PowerManager.WakeLock
- PowerManager和PowerManager.WakeLock
- PowerManager和PowerManager.WakeLock详解
- Android: PowerManager.WakeLock
- android PowerManager wakelock
- Android PowerManager.WakeLock分享
- android PowerManager wakelock
- PowerManager.WakeLock电源管理
- PowerManager.WakeLock电源管理
- PowerManager.WakeLock的使用
- android PowerManager wakelock
- PowerManager.WakeLock源码解读
- 怎样启动mysql慢查询
- tips of using eclipse
- linux rhel 6.2 intel dpdk install 安装部署
- Cache As Ram
- 查看linux操作系统的位数
- PowerManager.WakeLock
- 毕业,新的起点
- Extjs 的 TextField 后面加单位
- ios 计算utf8 的字符个数.
- maximo报错:ORA-29855
- linux用户权限相关命令
- 从AFX_MANAGE_STATE(AfxGetStaticModuleState())说起
- MySQL中的if语句应用
- Manacher算法处理字符串回文