3
我在處理線程中的消息時遇到了問題。我的運行方法是這樣的線程在等待()和通知()後丟失消息
public void run() {
Looper.prepareLooper();
parserHandler = new Handler {
public void handleMessage(Message msg) {
Log.i("","id from message: "+msg.getData.getString("id"));
// handle message
this.wait();
}
}
}
我有幾個活動發送消息給這個線程,就像這樣:
Message parserMessage = new Message();
Bundle data = new Bundle();
data.putString("id", realId);
data.putString("callingClass", "CategoryList");
parserMessage.setData(data);
parserMessage.what = PARSE_CATEGORIES_OR_PRODUCTS;
parserHandler = parser.getParserHandler();
synchronized (parserHandler) {
parserHandler.notify();
Log.i("","message ID: " + parserMessage.getData().getString("id"));
}
parserHandler.sendMessage(parserMessage);
的問題是,運行方法日誌「從消息ID:空」儘管「消息ID」在Log語句中有一個值。爲什麼消息在發送到線程時會「丟失」它的數據?它與通知有關嗎?感謝您的幫助