如何刷新处理程序中的待处理消息和回调
如何刷新/调度处理程序中等待的所有待处理消息和回调?
当我的服务被销毁时,我需要它来处理某些异步事件。
我想立即发送所有消息/回调,而不是删除它们。我不使用任何延迟消息。
How to flush/dispatch all pending messages and callbacks which are waiting in a Handler?
I need this to deal with certain asynchronous events when my Service is being destroyed.
I want to dispatch all the messages/callbacks immediately, not to remove them. I don't use any delayed messages.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
假设您不使用任何延迟消息,则您有一个待处理消息队列,每个消息都必须在关联的线程中进行处理。这意味着除非当前消息处理完成,否则线程无法处理下一条消息。
因此,总而言之,如果没有使用延迟消息,则处理程序的消息循环已经尽力刷新队列。唯一能让刷新速度更快的是更好的消息处理。这不是汉德勒的工作。
Assuming you don't use any delayed messages, you have a queue of pending messages each of which must be processed in associated thread. This means that thread can not process next message unless current message processing is completed.
So, to summarize, if no delayed messages are used, you handler's message loop is already doing its best to flush the queue. The only thing that can make this flushing faster is better message processing. And this is not Handler's work.