2014年3月20日

Android ─ Handler sendMessage 與 sendToTargett差異

最近在上網找有關Handler相關資訊的時候
發現了,要發送的Message實體化的方式卻有兩種
  • 如果使用sendMessage方式
程式碼如下:
Message msg=new Message();  
msg.arg1=i;  
handler.sendMessage(msg);  
  • 使用sendToTarget方式
 程式碼如下:
Message msg = handler.obtainMessage();  
msg.arg1 = i;  
msg.sendToTarget();     
上次兩種方式都可以達到相同的目的,將訊息回傳給handler去做後續的處理
都有callback的功用
但是兩者對於程式的資源消耗卻有差別
  • 使用sendMessage,我們需要自己new Message,來取得message
    如此會增加prcoess的儲存空間
  • 使用sendToTarget,採用obtainMessage()方法來取得message,是從系統的MessagePool中取得,並不會增加process的儲存空間

所以採用的obtainMessage來實體化message會是比較有效率的方法

參考連結
參考連結




沒有留言:

張貼留言