首页 > 技术文章 > Handler sendMessage 与 obtainMessage (sendToTarget)

sudawei 2013-12-13 17:39 原文

 

这篇文章讲的很好:

http://www.cnblogs.com/android007/archive/2012/05/10/2494766.html

两种用法:

1、

private void sendMessage(Handler handler, Bitmap bm) 
    { 
        Message msg = handler.obtainMessage(); 
        msg.obj = bm; 
        handler.sendMessage(msg); 
    }  

private void sendMessage(Handler handler) 
    { 
        Message msg = handler.obtainMessage(); 
        handler.sendMessage(msg); 
    }  

sendMessage(mhandler);

 

 

 

2、

Message msg = new Message();
msg.setTarget(mhandler);
msg.what = OK;
msg.sendToTarget();

 结论:

1、obtainMessage 方式性能好;

 

Message android.os.Handler.obtainMessage(int what, int arg1, int arg2, Object obj)

public final Message obtainMessage (int what, int arg1, int arg2, Object obj) 
Since: API Level 1 
Same as obtainMessage(), except that it also sets the what, obj, arg1,and arg2 values on the returned Message.

Parameters
what  Value to assign to the returned Message.what field. 
arg1  Value to assign to the returned Message.arg1 field. 
arg2  Value to assign to the returned Message.arg2 field. 
obj  Value to assign to the returned Message.obj field. 

Returns
A Message from the global message pool.

 

 

 

 

推荐阅读