当前位置: 首页 > news >正文

温州网站建设大全免费外网

温州网站建设大全,免费外网,wordpress赞助功能,seo人才招聘一、Handler的作用 1、Handler的作用是在andorid中实现线程间的通信。我们常说的说的#xff0c;子线程处理逻辑#xff0c;主线程更新UI是上述情况的一个子集。 二、源码分析 1、Handler源码 源码地址#xff1a;http://androidxref.com/7.1.1_r6/xref/frameworks/base/co…一、Handler的作用 1、Handler的作用是在andorid中实现线程间的通信。我们常说的说的子线程处理逻辑主线程更新UI是上述情况的一个子集。 二、源码分析 1、Handler源码 源码地址http://androidxref.com/7.1.1_r6/xref/frameworks/base/core/java/android/os/Handler.java 2、具体分析 创建Handler并消费的过程 先看下Handler的构造函数的核心部分 mLooper Looper.myLooper(); if (mLooper null) { throw new RuntimeException( “Can’t create handler inside thread that has not called Looper.prepare()”); } mQueue mLooper.mQueue; mCallback callback; mAsynchronous async; Handler在默认构造函数里检查了当前线程是否是Looper线程如果不是Looper线程就抛出异常。我们常在主线程直接 new Handler() 这样做之所以没问题是因为ActivityThread默认创建了Looper对象。如果我们想在非主线程T里创建Handler对象需显示调用 Looper.prepare() 那另外一种构造Handler的方式是 public Handler(Looper looper, Callback callback, boolean async) { mLooper looper; mQueue looper.mQueue; mCallback callback; mAsynchronous async; } 这种方法要显示的传进一个Looper对象。获取Looper对象的方法是 thread.getLooper(); 前提是thread线程已经是looper线程例如HandlerThread线程的对象就是looper线程。 通过以上2种方法我们就创建可以创建一个Looper对象此时可以直接构造一个Handler对象出来并开启Loop循环 Looper.loop();//这是一个死循环for(;此循环在线程T里执行 从构造函数核心部分可知Handler通过mLooper对象持有了一个MessageQueue对象mQueue。loop循环就是在遍历这个mQueue当有Message对象msg进入队列的时候msg会被立刻通过 mQueue.next();//如果没有消息会阻塞在这里 方法被取出通过 msg.dispatchMessage();//在线程T里执行 回调给Handler处理Handler再通过 handleMessage();//在线程T里执行 将消息下发给具体处理业务的逻辑。 生产的过程 还是先看一段源码 private boolean enqueueMessage(MessageQueue queue, Message msg, long uptimeMillis) { msg.target this; if (mAsynchronous) { msg.setAsynchronous(true); } return queue.enqueueMessage(msg, uptimeMillis); } 我们在所有其他线程A中通过Handler的对象sendMessage或者post等方法生产的消息最终都会通过这里被enqueue到该Handler持有Looper成员变量的MessageQueue成员变量中enqueue的过程必须加锁这里就不展开说了。 上面就是一个生产过程实现了从线程A中将消息发送到线程T中。 三、总结 Handler必须搭配Looper使用这是因为MessageQuene只有进出的接口没有loop接口需要Looper对象拿出消息并回调给Hander对象进行处理。
http://www.w-s-a.com/news/962375/

相关文章:

  • 可以做直播卖产品的网站陕西省建设银行网站
  • 搭建网站的英语seo优化专员招聘
  • 做网站深紫色搭配什么颜色网站的在线支付怎么做
  • 中国最大网站建设公司长沙专业做网站公司哪家好
  • 金峰辉网站建设菏泽财富中心网站建设
  • 怎么做网站站长视频企业网站开发意义
  • 网站创建多少钱商标自助查询系统官网
  • 免费做App和网站的平台广州做网站推广的公司
  • 衡水做网站推广的公司wordpress相册滑动
  • 不用域名也可以做网站公司网站建设制作难么
  • 学做网站培训机构wordpress 图片拉伸
  • 成都捕鱼网站建设wordpress自定义文章类别
  • wordpress网站怎么加速湖北网站建设企业
  • 迁安做网站中的cms开发南平网站建设公司
  • 肥西县住房和城乡建设局网站代驾系统定制开发
  • 网站建设明细报价表 服务器qq是哪家公司的产品
  • html链接网站模板wordpress怎么调用简码
  • 网站域名怎么查简述网站推广的五要素
  • 咸宁网站设计公司app安装下载
  • 丝网外贸做哪些网站最优的赣州网站建设
  • 如何做网站不被查网站开发工程师岗位说明书
  • 做网站需要vps吗网站建设后怎样发信息
  • 网站建立风格二手交易网站开发可参考文献
  • 成都微信网站开发优化大师优化项目有哪些
  • 哪个网站做自考题目免费郑州网站建设公司qq
  • 地方性的网站有前途顺的网络做网站好不好
  • 学校申请建设网站的原因不要网站域名
  • 推荐响应式网站建设子域名查询工具
  • 如何建设学校的微网站广告推广是什么
  • 设计类专业哪个就业前景好网站建设seoppt