为了账号安全,请及时绑定邮箱和手机立即绑定

Android面试常客Handler详解

难度中级
时长 2小时 0分
学习人数
综合评分9.30
169人评价 查看评价
9.7 内容实用
9.3 简洁易懂
8.9 逻辑清晰

最新回答 / 守望_0004
handlerThread是线程名,5是线程的priority 优先级,main是线程组的名字。

最新回答 / 慕标748180
= =看到后面发现子线程不指定Looper会报异常

最新回答 / 握没名仔
子线程从网络获取一个集合,怎样发送到主线程中?

已采纳回答 / 慕移动7759153
选中callBack,按“Ctrl” + “Shit” + “O”,导入android.os.Handler.Callback即可

最新回答 / NullMoneyException
下面有个相同的提问 好像有大神回答了 我不太懂 他的意思是 系统只是限制其他线程更新ui 并不代表其他线程不能更新 限制就得要有监听 多线程会有个问题 没准子线程比主线程先执行了 也就是该控件的监听还没完全启动什么的 就绕过了监听 加了睡眠其实就是让主线程有足够的时间去执行初始 其实一秒还太长了 就这么点代码几毫米都不要  所以被拦截了 就崩了 哈哈 你可以看哪个大神的回答 哈哈 我也不清楚是不是这样

最新回答 / YYQ_MAX
通过消息发送和接收的方式切换的。子线程(非UI线程)调用handler对象sendMessage(msg)方法,将消息发送给关联Looper,Looper将消息存储在MessageQueue消息队列里面。然后轮巡取出MessageQueue中的消息给UI线程中handler处理,handler得到消息调用handleMessage方法处理消息,从而可以更新Ui。

最新回答 / 寄意蘭舟
你的第一种假设子线程传递message到主线程,然后更新UI,是对的,项目中都这样用,子线程对UI的操作就是第一种假设,通过传递消息码进行更新UI。

最新回答 / XhstormR
重写 handler 对象的 handleMessage 方法啊。

已采纳回答 / 攻城狮ZSP
我碰到相似的问题,该方法时灵时不灵,可能是线程的时间太短了,加入Thread.sleep(1000)后正常。

已采纳回答 / 攻城狮ZSP
老师讲的方法有点问题,消息开始发送以后,实际上形成了一个消息发送循环,去除原始的消息并不能停止这个循环,要停止这个队,在发送消息的前面加个开关,就行了。代码如下: if(flag){ mainHandler.sendMessageDelayed(message, 1000); } case R.id.stop:flag=false; break;

已采纳回答 / sunzw
分别是一个类。
老师告诉你能学到什么?
通过本课程,你将学到: 1、什么是Handler 2、如何使用Handler 3、Handler的原理是什么 4、如何定义一个与线程相关的Handler 5、Android更新UI的几种方式 6、非UI线程真的不能更新UI吗 7、Handler使用过程中遇到的问题

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消