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線程中調用等待,這是你得到應用程序沒有響應彈出的原因。您可以隨時發佈另一條消息,而不是等待
感謝您的回答。它解決了我的問題。 –