这是两个处理程序:
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_A
和MESSAGE_ONE
(或MESSAGE_TWO
)成对发送,但不知道哪一个是第一个。现在,我希望仅在处理doSomethingOne()
和MESSAGE_A
时调用MESSAGE_ONE
,仅在处理doSomethingTwo()
和MESSAGE_A
时调用MESSAGE_TWO
。
例如,我收到MESSAGE_ONE
,现在我需要等待MESSAGE_A
,然后调用doSomethingOne()。
同样,我收到MESSAGE_A
,现在我需要等待MESSAGE_TWO
(或MESSAGE_ONE
),然后调用doSomethingTwo()(或doSomethingOne
)。
我该怎么办?
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以从handler2
致电handler1
(当案例消息A时)。例如,您可以使用布尔值来发送消息messageone
和messagetwo
,然后在messageA
完成后,调用handler2
并查看哪个boolean
是真。