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

网站建设与管理专业学什么电子简历表格手机版

网站建设与管理专业学什么,电子简历表格手机版,龙华网站建设专业定制企业,英语网站建设的必要性一、Handler的作用 1、Handler的作用是在andorid中实现线程间的通信。我们常说的说的,子线程处理逻辑,主线程更新UI是上述情况的一个子集。 二、源码分析 1、Handler源码 源码地址: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.yayakq.cn/news/588545/

相关文章:

  • 网站加入视频做视频播放网站 赚钱
  • 网站首页设计欣赏能看网站的视频app
  • 山楼小院在哪家网站做宣传广州做网站哪里好
  • 怀柔高端网站建设免费源码资源源码站入口
  • 免费直播网站移动网站搭建
  • 网站建设是做什么临沂网站建设吧
  • 网站订票策划方案51个人网站
  • 影视视频网站怎么做随州做网站
  • 欧美免费1级做爰片在线观看网站网站建设及运营 经营范围
  • 建设网站费用计入什么科目drupal网站建设数据库
  • 合肥网站公司营销推广策划方案范文
  • 安徽鲲鹏建设集团有限公司网站wordpress 上传图片发生错误
  • 搭配服装网站源码手机兼职
  • 泰州专业网站制作公司容易被百度收录的网站
  • 做配件出口上什么网站vs2015做简单网站
  • 网站建设 地址 上海石门二路ui界面设计图片展示
  • 酒店网站做的比较好的wordpress粉丝
  • 搭建网站是什么专业朋友圈推广怎么收费
  • 私人找人做网站重庆保姆网
  • 网站建设优化教程西安做网站公司云速
  • dede模板分为 网站建设好吗做网站推广代理
  • 郑州知名网站建设今天的国内新闻
  • 湖南省建设银行网站辽宁建设工程信息网开标流程
  • 网站建设费可摊几年哪个网站有工笔教程
  • 我想给企业做网站怎么做手机ui设计网站
  • 北京网站开发工程师招聘网前端实战项目11套
  • 林管局网站建设方案网站建设logo要什么格式
  • 吕梁市住房与城乡建设厅网站邢台网
  • 外贸网站免费建设鞍山信息港官网
  • 传统建筑网站做酒店网站所用到的算法