zoukankan      html  css  js  c++  java
  • sendMessage 与 obtainMessage (sendToTarget)比较

    我们平时在做到多线程问题的时候可能利用Handler去传递Message,其中,经常使用的就是
    1、new Handler().obtainMessage().sendToTarget();
    2、new Handler().sendMessage(new Message());
    第一种是直接传递what,obj等,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

  • 相关阅读:
    当一个模块没有默认导出
    <<平仓>>
    模态对话框
    PlanB S2F 模型
    <<深入React技术栈>> CSS Modules
    状态提升
    ol.proj.transform 坐标系转换
    HTMLVideoElement.srcObject MediaStream MediaSource Blob File
    毛玻璃特效 backdrop-filter
    Filter
  • 原文地址:https://www.cnblogs.com/bluestorm/p/10916715.html
Copyright © 2011-2022 走看看