1
在我的Android应用程序中,我创建了2个处理程序。一个处理程序收到消息并等待(调用wait();)。在这一点上,如果我发布消息给第二个处理程序,它不会收到。一段时间后,我收到对话框说应用程序没有响应“强制关闭”或“等待按钮”。Android Handler未收到消息
我想因为wait()在一个处理程序中,阻止第二个处理程序接收消息。
请建议我解决这个问题。
在我的Android应用程序中,我创建了2个处理程序。一个处理程序收到消息并等待(调用wait();)。在这一点上,如果我发布消息给第二个处理程序,它不会收到。一段时间后,我收到对话框说应用程序没有响应“强制关闭”或“等待按钮”。Android Handler未收到消息
我想因为wait()在一个处理程序中,阻止第二个处理程序接收消息。
请建议我解决这个问题。
您应该创建两个线程,从而在每个这两个线程的处理程序,并调用Looper.loop在两个线程
class HandlerThread1 extends Thread {
public Handler mHandler;
public void run() {
Looper.prepare();
mHandler = new Handler() {
public void handleMessage(Message msg) {
// process incoming messages here
}
};
Looper.loop();
}
}
同样的方式创建HandlerThread2和启动这两个线程的run方法。
你不应该在Ui线程中调用等待,这是你得到应用程序没有响应弹出的原因。您可以随时发布另一条消息,而不是等待
感谢您的回答。它解决了我的问题。 –