在安卓系统中,我应该在哪里找到消息队列中待处理的消息?

5
有没有办法找出消息队列的大小以及每个消息中的内容?是通过 Looper.getMainLoop 或其他方法实现的吗?

你不应该随意操作应用程序的消息队列,至少不要在主UI线程上这样做。只有在像辅助线程这样的地方才有必要查看消息队列,因为你可以实际发送消息并正确处理它们。然而,触及主UI线程消息队列是没有太多理由这样做的。 - Kristopher Micinski
嗨,Kristopher,谢谢你的回复。但是你能告诉我如何找出消息队列中有多少项吗?或者检查它以便在需要时取消它吗? - user1118019
消息队列是不透明的。如果你想查看主应用程序的消息队列,它会有很多垃圾信息,对于你处理来说没有任何意义(也就是说,如果你试图对其进行更改,你的应用会崩溃;消息队列用于传出意图等,而不仅仅是消息对象)。文档中也没有相应的方法:http://developer.android.com/reference/android/os/Looper.html,http://developer.android.com/reference/android/os/MessageQueue.html。 - Kristopher Micinski
1个回答

3
希望回答不算太晚。您可以通过调用Looper.myQueue()来访问当前线程的消息队列。然而,MessageQueue类没有方法可以查找其大小或每个消息中的项目。为此,您可以尝试使用Handler类。处理程序管理一个looper,该looper具有队列,并且该处理程序具有hasMessages、obtainMessage、removeMessages等方法。我认为这是您最好的选择。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接