平时我们用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,这样省内存
Android Handler:sendMessage与obtainMessage的区别
本文探讨了Android中Handler的sendMessage和obtainMessage方法的差异。尽管两者都能传递消息,但obtainMessage是从MessagePool获取消息,避免了新创建对象带来的内存开销,因此建议使用obtainMessage来优化内存使用。

被折叠的 条评论
为什么被折叠?



