黑马程序员技术交流社区
标题:
Handler是执行在哪个线程里面的?
[打印本页]
作者:
张乐
时间:
2016-5-9 14:38
标题:
Handler是执行在哪个线程里面的?
想必做安卓的朋友们对Handler都不陌生,今天突然想到一个问题,Handler到底是运行在主线程还是子线程呢?问了几位朋友,得到的答案都不一样,请大神帮忙解答一下稍微详细一些,多谢!
作者:
Coolman
时间:
2016-5-9 16:57
http://mp.weixin.qq.com/s?__biz=MzA5MTE1NTE5NQ==&mid=405322810&idx=1&sn=65d605b60aeb6d97924dc1f932838196&scene=0&from=singlemessage&isappinstalled=0#wechat_redirect
作者:
brenthe
时间:
2016-5-13 21:59
过来学习一下,
作者:
climb
时间:
2016-5-23 23:31
顶一下先、、、
作者:
上帝的天使
时间:
2016-5-27 13:08
应该是主线程吧
作者:
yanchong2016
时间:
2016-5-29 19:49
主线程。我所知道的是,子线程无法对UI的数据进行修改,只有主线程才能对UI进行修改,所以就用Handler类中的handleMessage()方法对UI进行修改。
作者:
Fangjie
时间:
2016-6-9 07:53
是的,handle运行在主线程里
作者:
席金花
时间:
2016-6-19 23:44
一个Handler允许你发送和处理Message和Runable对象,每个线程都有自己的Looper,每个Looper中封装着MessageQueue。Looper负责不断的从自己的消息队列里取出队头的任务或消息执行。每个handler也和线程关联,Handler负责把Message和Runable对象传递给MessageQueue(用到post ,sendMessage等方法),而且在这些对象离开MessageQueue时,Handler负责执行他们(用到handleMessage方法)。
其中Message类就是定义了一个信息,这个信息中包含一个描述符和任意的数据对象,这个信息被用来传递给Handler.Message对象提供额外的两个int域和一个Object域。
作者:
齐浩
时间:
2017-2-20 14:34
handler是运行在两个线程的,handler把子线程的数据发送到主线程来使用。。他是在子线程和主线程的一个循环结构,想想looper就可以了。。。handler只是一个搬运工。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2