首页 > 试题广场 >

关于 Handler 的说话正确的是()

[单选题]
关于 Handler 的说法正确的是()
  • 它实现不同线程间通信的一种机制
  • 它不能在新线程中执行刷新UI的操作
  • 它采用栈的方式来组织任务的
  • 它可以属于一个新的线程
推荐
A 正确
  Android中不允许开启一个新新线程更新UI,所以BD错误
C Handler采用的是消息队列的方式,每一个Handler都会有一个与之相关联的消息队列,而且都是以先进先出的方式执行
编辑于 2015-01-17 11:41:22 回复(5)
A. Right
B. 只能在UI线程操作UI组件
C. 采用队列
D. 只能属于创建它的线程
发表于 2015-01-15 16:15:35 回复(0)
难道handler不是避免了在线程中操作UI组件吗?
发表于 2015-08-24 17:25:20 回复(2)
a不解释
b我觉得应该是说,避免了直接操作ui组件,新线程当然可以通过handler来操作ui组件
c用消息队列
d不太清楚想表达什么
发表于 2015-10-12 22:26:57 回复(0)
A 正确。
B是因为handler+looper+Messagequeue这种方式来更新UI;
C Handler采用的是消息队列的方式,每一个Handler都会有一个与之相关联的消息队列,而且都是以先进先出的方式执行;
D则是因为handler属于创建它的线程。
发表于 2017-07-08 10:44:01 回复(0)
Handler 属于创建它的线程 它用消息队列的方式
编辑于 2017-03-08 16:30:51 回复(0)
B.因为handler+looper+Messagequeue这种方式来更新UI
C.MessageQueue其实并不是队列,而是一个单链表。而且也不是FIFO,会根据when来决定插入位置。
D.则是因为handler属于创建它的线程
发表于 2016-10-20 09:51:28 回复(0)
我觉得B有点问题,在新线程中是可以操作通过handler来操作UI组件的
编辑于 2016-09-16 15:44:48 回复(0)
最后的d有歧义
发表于 2015-08-19 12:08:45 回复(0)
我觉得 D 答案有问题,因为根据 HandlerThread 的源码,Handler 就是可以在非 UI 线程(也就是这题所说的新线程)里面处理耗时任务啊。
发表于 2019-03-03 08:43:51 回复(0)
d怎么了
发表于 2018-04-12 12:51:40 回复(0)
B错,更新UI只能在主线程,不能在工作线程
C错,采用队列方式
D有歧义,子线程可以创建handler,属于子线程的handler,这是没有问题的,“可以”两字说明这个说法是正确的
发表于 2018-04-10 11:47:57 回复(0)
一个新线程创建了handler,这个handler是否属于一个新线程?
发表于 2017-11-02 19:11:10 回复(0)
别的就不多说了,至于B的描述如果是"它避免了新 非UI 线程操作 UI 组件 " 则是正确的,Handler也可以是一种新线程操作UI的方式
发表于 2017-01-18 18:25:59 回复(0)
可以为新的线程创建handler啊
发表于 2016-01-29 16:35:29 回复(0)
A正确 只有主线程才能刷新ui , handler把子线程需要刷新的东西传递给主线程去刷新
发表于 2015-09-10 14:31:06 回复(0)
我觉得应该是哪个选项错
发表于 2015-09-07 17:35:02 回复(0)
非UI线程可以有handler
发表于 2015-08-07 09:27:15 回复(0)
A
发表于 2015-01-16 17:04:13 回复(0)
A
发表于 2015-01-16 15:30:35 回复(0)