【问题标题】:Where can I find pending message on the message queue in android?我在哪里可以找到 android 消息队列中的待处理消息?
【发布时间】:2012-03-17 16:46:14
【问题描述】:

有没有办法找出消息队列的大小以及每条消息中的项目?是Looper.getMainLoop还是什么?

【问题讨论】:

  • 你不应该在你的应用程序的消息队列中搞乱。至少不是主 UI 线程。仅查看消息队列中的辅助线程之类的东西才有意义,您可以在其中实际发送消息并正确处理它们。但是,触摸主 UI 线程消息队列是您没有太多理由这样做的。
  • 您好克里斯托弗,感谢您的回复。但你至少能告诉我如何找出消息队列中有多少项目吗?或检查它,以便我可以在需要时取消它?
  • 消息队列是不透明的。如果你试图查看你的主应用程序的消息队列,它上面会有一堆垃圾,你处理起来没有任何意义(即,如果你试图弄乱它,你的应用程序会崩溃,消息队列用于传出意图等......,而不仅仅是消息对象)。如果您查看文档,则没有方法可以做到这一点:developer.android.com/reference/android/os/Looper.htmldeveloper.android.com/reference/android/os/MessageQueue.html

标签: android message-queue


【解决方案1】:

希望现在给出答案还为时不晚。您可以在其上调用 Looper.myQueue() 访问当前线程的消息队列。但是,MessageQueue 类没有方法来找出它的大小或每条消息中的项目。为此,您可以尝试 Handler 类。一个处理程序管理一个循环器,它有一个队列,并且该处理程序具有诸如 hasMessages、obtainMessage、removeMessages 等方法。我认为这是你最好的选择。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    相关资源
    最近更新 更多