助企建站,如何自己做个人微信小程序,平顶山做网站哪家好,大连搬家公司哪家好我们平时在做到多线程问题的时候可能利用Handler去传递Message#xff0c;其中#xff0c;经常使用的就是1、new Handler().obtainMessage().sendToTarget();2、new Handler().sendMessage(new Message());第一种是直接传递what#xff0c;obj等#xff0c;msg的一些数据其中经常使用的就是 1、new Handler().obtainMessage().sendToTarget(); 2、new Handler().sendMessage(new Message()); 第一种是直接传递whatobj等msg的一些数据第二种是初始化一个msg然后赋值msg的一些数据以Message的对象去send在使用上这两种都可以实现需求那么这两种有什么区别呢 等同于obtain()方法返回了一个带target标志的Message就是给Message打上Handler的标志好区分的意思没别的意思主要就是obtain()方法如下 image.png 就如同最开始说的那样从MessagePool 返回一个新的Message实例避免分配新对象省去了创建对象申请内存的开销。。。。。 image.png 得到了Message后调用了sendToTarget里面调用了sendMessage(),这就是和方法二一样的了 new Handler().sendMessage(new Message()); 总结下就是说利用obtainMessage().sendToTarget()是从MessagePool 返回一个新的Message实例可以避免我们去创建Message对象申请内存开销。 https://www.jianshu.com/p/f74b91c6733b 转载于:https://www.cnblogs.com/bluestorm/p/10916715.html