平时我们用handlermessage
Message msg = new Message();
msg.what = 0xA2;
msg.obj = "FEFFA2410310FCS";
Handler.sendMessage(msg);
用obtainMessage()
Message msg = handler.obtainMessage();
msg.what = 0xA2;
msg.obj = "FEFFA2410310FCS";
msg.sendToTarget();
两种都能完成所要的需求,但是为啥要出现两种呢
public static Message obtain(Handler h) {
Message m = obtain();
m.target = h;
return m;
}这里不是创建message而是取
obtainMessage和new Message()的区别,它们的区别也就在于Message的创建方式不同。
obtainMessage 已经不是 自己创建的了,而是从MessagePool 拿的,省去了创建对象申请内存
以后使用的时候尽量使用 Message msg = handler.obtainMessage();的形式创
建Message,这样省内存