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