public final class PowerManager.WakeLock
extends Object
java.lang.Object | |
↳ | android.os.PowerManager.WakeLock |
唤醒锁是一种机制,用于指示您的应用程序需要使设备保持开启状态。
任何使用WakeLock的应用程序都必须请求应用程序清单的<uses-permission>
元素中的android.permission.WAKE_LOCK
权限。 致电newWakeLock(int, String)
获取唤醒锁。
调用 acquire()
以获取唤醒锁并强制设备保持在创建唤醒锁时请求的级别。
当你完成并且不再需要锁时,致电release()
。 尽快做到这一点非常重要,以避免过度使用设备的电池。
Public methods |
|
---|---|
void |
acquire() 获取唤醒锁。 |
void |
acquire(long timeout) 通过超时获取唤醒锁。 |
boolean |
isHeld() 如果已获取但尚未释放唤醒锁,则返回true。 |
void |
release(int flags) 使用标志释放唤醒锁以修改发行行为。 |
void |
release() 释放唤醒锁。 |
void |
setReferenceCounted(boolean value) 设置此WakeLock是否为参考计数。 |
void |
setWorkSource(WorkSource ws) 设置与唤醒锁相关联的工作源。 |
String |
toString() 返回对象的字符串表示形式。 |
Protected methods |
|
---|---|
void |
finalize() 当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
void acquire (long timeout)
通过超时获取唤醒锁。
确保设备在创建唤醒锁时所请求的级别处于开启状态。 在给定的超时期满后,锁将被释放。
Parameters | |
---|---|
timeout |
long : The timeout after which to release the wake lock, in milliseconds. |
boolean isHeld ()
如果已获取但尚未释放唤醒锁,则返回true。
Returns | |
---|---|
boolean |
True if the wake lock is held. |
void release (int flags)
使用标志释放唤醒锁以修改发行行为。
此方法释放您对CPU或屏幕的声明。 释放唤醒锁后,屏幕可能会立即关闭,或者如果仍有其他唤醒锁,则屏幕可能不会显示。
Parameters | |
---|---|
flags |
int : Combination of flag values to modify the release behavior. Currently only RELEASE_FLAG_WAIT_FOR_NO_PROXIMITY is supported. Passing 0 is equivalent to calling release() . |
void release ()
释放唤醒锁。
This method releases your claim to the CPU or screen being on. The screen may turn off shortly after you release the wake lock, or it may not if there are other wake locks still held.
void setReferenceCounted (boolean value)
设置此WakeLock是否为参考计数。
唤醒锁默认是引用计数。 如果唤醒锁参考计数,则每次调用acquire()
必须由相同数量的呼叫的平衡release()
。 如果唤醒锁不是引用计数,那么对release()
一次调用就足以将以前所有调用的效果撤销到acquire()
。
Parameters | |
---|---|
value |
boolean : True to make the wake lock reference counted, false to make the wake lock non-reference counted. |
void setWorkSource (WorkSource ws)
设置与唤醒锁相关联的工作源。
工作源用于代表哪个应用程序正在保持唤醒锁。 这在服务正在代表应用程序执行工作的情况下很有用,以便可以将该工作的成本计入应用程序。
Parameters | |
---|---|
ws |
WorkSource : The work source, or null if none. |
String toString ()
返回对象的字符串表示形式。 通常, toString
方法会返回一个“文本表示”该对象的字符串。 结果应该是一个简洁但内容丰富的表述,对于一个人来说很容易阅读。 建议所有子类重写此方法。
类Object
的toString
方法返回一个字符串,其中包含对象为实例的类的名称,符号字符“ @
”以及对象的哈希代码的无符号十六进制表示。 换句话说,这个方法返回一个字符串,其值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
Returns | |
---|---|
String |
a string representation of the object. |
void finalize ()
当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。 一个子类重写了finalize
方法来处置系统资源或执行其他清理。
的常规协定finalize
是,它被调用,如果当在Java TM虚拟机已确定不再有由该目的可以通过还没有死亡,除了作为一个动作的结果的任何线程访问的任何手段取决于某些其他可以完成的对象或类别的最终定稿。 finalize
方法可以采取任何行动,包括使这个对象再次可用于其他线程; 然而, finalize
的通常目的是在对象被不可撤销地丢弃之前执行清理操作。 例如,表示输入/输出连接的对象的finalize方法可能会执行显式I / O事务,以在永久丢弃该对象之前中断连接。
类Object
的finalize
方法Object
执行特殊操作; 它只是正常返回。 Object
子类可能会覆盖此定义。
Java编程语言不保证哪个线程将为任何给定的对象调用finalize
方法。 但是,保证调用finalize的线程在调用finalize时不会保留任何用户可见的同步锁。 如果finalize方法引发未捕获的异常,则忽略该异常,并终止该对象的终止。
在针对某个对象调用 finalize
方法之后,在Java虚拟机再次确定不再有任何方法可以通过尚未死亡的任何线程访问此对象,包括可能的操作通过准备完成的其他对象或类别,此时该对象可能被丢弃。
对于任何给定的对象,Java虚拟机永远不会多次调用 finalize
方法。
finalize
方法抛出的任何异常 finalize
导致此对象的终止停止,但在其他情况下会被忽略。
Throws | |
---|---|
Throwable |