Most visited

Recently visited

Added in API level 1

MessageQueue

public final class MessageQueue
extends Object

java.lang.Object
   ↳ android.os.MessageQueue


低级别持有由Looper派发的消息列表。 消息不会直接添加到MessageQueue,而是通过与Looper关联的Handler对象。

您可以使用 Looper.myQueue()检索当前线程的MessageQueue。

Summary

Nested classes

interface MessageQueue.IdleHandler

回调接口用于发现线程何时阻塞等待更多消息。

interface MessageQueue.OnFileDescriptorEventListener

在文件描述符相关事件发生时调用的侦听器。

Public methods

void addIdleHandler(MessageQueue.IdleHandler handler)

为此消息队列添加一个新的 MessageQueue.IdleHandler 。

void addOnFileDescriptorEventListener(FileDescriptor fd, int events, MessageQueue.OnFileDescriptorEventListener listener)

添加文件描述符侦听器以在发生文件描述符相关事件时接收通知。

boolean isIdle()

如果活套没有待处理的待处理消息,则返回true。

void removeIdleHandler(MessageQueue.IdleHandler handler)

删除 MessageQueue.IdleHandler从先前与添加的队列 addIdleHandler(MessageQueue.IdleHandler) 。

void removeOnFileDescriptorEventListener(FileDescriptor fd)

删除文件描述符侦听器。

Protected methods

void finalize()

当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。

Inherited methods

From class java.lang.Object

Public methods

addIdleHandler

Added in API level 1
void addIdleHandler (MessageQueue.IdleHandler handler)

为此消息队列添加一个新的MessageQueue.IdleHandler 。 这可能会自动删除,方法是调用IdleHandler.queueIdle()时返回false,或者用removeIdleHandler(MessageQueue.IdleHandler)明确删除它。

这个方法可以安全地从任何线程调用。

Parameters
handler MessageQueue.IdleHandler: The IdleHandler to be added.

addOnFileDescriptorEventListener

Added in API level 23
void addOnFileDescriptorEventListener (FileDescriptor fd, 
                int events, 
                MessageQueue.OnFileDescriptorEventListener listener)

添加文件描述符侦听器以在发生文件描述符相关事件时接收通知。

如果文件描述符已被注册,则指定的事件和侦听器将替换之前与其关联的任何事件和侦听器。 每个文件描述符不能设置多个侦听器。

当文件描述符不再使用时,始终注销监听器是非常重要的。

Parameters
fd FileDescriptor: The file descriptor for which a listener will be registered.
events int: The set of events to receive: a combination of the EVENT_INPUT, EVENT_OUTPUT, and EVENT_ERROR event masks. If the requested set of events is zero, then the listener is unregistered.
listener MessageQueue.OnFileDescriptorEventListener: The listener to invoke when file descriptor events occur.

也可以看看:

isIdle

Added in API level 23
boolean isIdle ()

如果活套没有待处理的待处理消息,则返回true。

这个方法可以安全地从任何线程调用。

Returns
boolean True if the looper is idle.

removeIdleHandler

Added in API level 1
void removeIdleHandler (MessageQueue.IdleHandler handler)

删除MessageQueue.IdleHandler从先前与添加的队列addIdleHandler(MessageQueue.IdleHandler) 。 如果给定的对象当前不在空闲列表中,则不做任何事情。

这个方法可以安全地从任何线程调用。

Parameters
handler MessageQueue.IdleHandler: The IdleHandler to be removed.

removeOnFileDescriptorEventListener

Added in API level 23
void removeOnFileDescriptorEventListener (FileDescriptor fd)

删除文件描述符侦听器。

如果没有为指定的文件描述符注册监听器,则此方法不执行任何操作。

Parameters
fd FileDescriptor: The file descriptor whose listener will be unregistered.

也可以看看:

Protected methods

finalize

Added in API level 1
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

Hooray!