無名

大猫咪与小狮子

导航

2012年1月14日 #

Handler高级

摘要: 现在我们首先就有一个问题,我们使用myThreadHandler.sendEmptyMessage(0);发送一个message对象,那么Handler是如何接收该message对象并处理的呢?我先画一个数据结构图:从这个图中我们很清楚可以看到调用sendEmptyMessage后,会把Message对象放入一个MessageQueue队列,该队列属于某个Looper对象,每个Looper对象通过ThreadLocal.set(new Looper())跟一个Thread绑定了,Looper对象所属的线程在Looper.Loop方法中循环执行从MessageQueue队列读取Message对象 阅读全文

posted @ 2012-01-14 19:05 xiezhengcai 阅读(3485) 评论(0) 推荐(0) 编辑

Handler基础

摘要: 1.Handler的定义 主要接受子线程发送的数据,并用此数据配合主线程更新UI。当应用程序启动时,Android首先会开启一个主线程(UI线程),主线程为管理界面中的UI控件,进行事件分发,比如说点击一个Button,Android会分发事件到Button上,来响应你的操作。如果进行一个耗时的操作,例如联网读取数据,或者读取本地较大的一个文件的时候,你不能把这些操作放在主线程中,如果你放在主线程中的话,界面会出现假死现象,如果5秒钟还没有完成的话,会收到Android系统的一个错误提示“强制关闭”。这个时候我们需要把这些耗时的操作,放在一个子线程中,因为子线程涉及到UI更新,Android. 阅读全文

posted @ 2012-01-14 18:04 xiezhengcai 阅读(623) 评论(0) 推荐(1) 编辑