Android 如何从不同的处理程序中同时获得两个msg?
以下是两个处理程序:Android 如何从不同的处理程序中同时获得两个msg?,android,Android,以下是两个处理程序: Handler handler1 = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case MESSAGE_A: break; } } } Handler handler2 = new Handler() { @Override public void handleMessage(
Handler handler1 = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case MESSAGE_A:
break;
}
}
}
Handler handler2 = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case MESSAGE_ONE:
doSomethingOne();
break;
case MESSAGE_TWO:
doSomethingTwo();
break;
}
}
}
我可以保证
MESSAGE\u A
和MESSAGE\u ONE
(或MESSAGE\u TWO
)将成对发送,但不知道哪一个是第一个。现在我只想在handleMESSAGE\u A
和MESSAGE\u ONE
时调用doSomethingTwo()
仅在handleMESSAGE\u A
和MESSAGE\u TWO
时调用doSomethingTwo()
例如,我收到MESSAGE\u ONE
,现在我需要等待MESSAGE\u A
,然后调用dosomethingo()
类似地,我收到消息A
,现在我需要等待消息2
(或消息1
),然后调用doSomethingTwo()(或dosomethingo
)
我该怎么办
确保消息A、消息1和消息2不同
在处理程序类之外编写一个方法,例如handleMessageTogether(消息m)
在处理程序类的handleMessage()方法中,改为调用handleMessageTogether()方法
您可以从handler1
调用handler2
(当案例消息A时)。例如,您可以使用布尔值发送消息,而不是发送消息messageone
和messagetwo
,然后在messageA
完成后,调用handler2
并查看哪个boolean
为真。您现在的输出是什么?对不起,我不明白。例如,消息“1”已发送,然后消息“A”,您的解决方案如何工作?MESSAGE\u A
和MESSAGE\u ONE
(或MESSAGE\u TWO
)以不确定的顺序出现,我认为您的解决方案无法解决我的问题。见我上面的例子。