0
A
回答
2
的問題是,如果兩個對象共享相同的內存地址,您比較。而你應該比較兩個對象的內容。
解決方案:使用String.equals
來比較您的字符串值的內容。
if("1".equals(m)){
}
注1:因爲真正的值進行比較,而不是存儲地址對於基本類型(int,雙,浮點型,短和字節)==
將工作。對於對象(非基元),==
總是比較兩個對象的內存地址。
注2: @pskink做了一個非常有用的評論,你的確應該使用Message.what
而不是Message.obj
。 Message.obj
對於傳送所需的實際數據(在同一個過程中)是有用的,但不能識別消息本身。
1
你如果條件應該是這樣的
if(m==1) //is for int
if(m.equals("1")) //is for string
相關問題
- 1. 的Android,處理程序消息
- 2. 消息處理程序
- 3. SOAP消息處理程序
- 4. UIScrollView消息處理程序
- 5. Android的消息應用程序如何處理重發失敗的消息
- 6. Android Handler不處理消息
- 7. Android消息處理程序未收到我發送的所有消息
- 8. Android UI線程和消息處理程序混淆
- 9. Android線程處理程序未收到消息
- 10. 圖像處理和比較android應用程序
- 11. 有序多線程消息處理
- 12. ASP.NET Web API消息處理程序
- 13. 安裝消息處理程序
- 14. 問題與消息處理程序
- 15. Websocketpp設置消息處理程序
- 16. 重複處理程序消息?
- 17. ASP.NET Web API消息處理程序
- 18. Masstransit。處理程序不確認消息
- 19. ActiveMQ/JMS消息處理程序測試
- 20. Spring集成消息處理程序:ActiveMQTextMessage
- 21. 從消息處理程序啓動asynctask
- 22. Android:帶處理程序消息的刪除按鈕
- 23. 來自處理程序的Android句柄消息
- 24. Android處理程序消息數據被下一條消息覆蓋
- 25. 通過MSMQ處理較大的WCF消息未處理
- 26. 發送消息給處於死線程的處理程序
- 27. StructureMap:如何獲得派生消息的基本消息處理程序? (命令處理程序模式)
- 28. Android處理程序只發送一條消息
- 29. Android消息/處理程序機制 - 安全嗎?
- 30. Android處理程序刪除發送消息不起作用
你應該爲這些目的使用'Message#what'字段,文檔說:*用戶定義的消息代碼,以便接收者可以識別這個消息是關於什麼的。每個Handler都有自己的消息代碼的名稱空間,所以你不必擔心你與其他處理器發生衝突。* – pskink
如果你使用'obj'來傳遞數據,你應該使用'Message#obtain(Handler h ,int what,Object obj)'或'Handler#obtainMessage(int what,Object obj)'來獲得你想發送的'Message' – pskink