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

Android面试常客Handler详解

难度中级
时长 2小时 0分
学习人数
综合评分9.30
169人评价 查看评价
9.7 内容实用
9.3 简洁易懂
8.9 逻辑清晰
实话实说,脑子感觉不够用了
四个字:似懂非懂:
讲得不错,就是有点乱,不过如果跟着敲多几遍,就会容易理解很多。加油吧

最新回答 / 纪奕滨
class LooperThread extends Thread {public Handler mHandler;public void run() {  Looper.prepare();//给线程创建一个消息循环  mHandler = new Handler() {    public void handleMessage(Message msg) {     // process incoming messages here    }  };  Looper.loop();//使消息循环起作用...

已采纳回答 / Swy㏄
handlerThread是子线程的。平时在线程中实例化handler(首先的需要确定线程中包含looper)在线程中创建looper需要在线程的run()方法中先调用looper.prepare()来初始化looper,然后再run()方法后调用looper.loop()方法来死循环 这样就在当前线程中创建好了looper而handlerthread就是更加简单的用来创建线程中的looper
我觉得老师讲的可以,这毕竟不是给小白或者零基础的人看的视频,上课前提前预习,课后复习,多敲代码,多练习,在听老师讲一讲,还是很容易理解的。

最新回答 / Mark_G
解决了,}.run();改成start()就好了,直接写成run()是调用匿名内部类的方法,而不是开启一个线程,所以没有抛出异常。。。太粗心了。。。
总体来说还可以,就是老师演示代码时稍微有点乱,其他都还挺好的
那MessageQueue体现在哪?

已采纳回答 / 粗鲁的男人
每一个handler必须要对应一个looper,主线程会自动创建Looper对象,不需要我们手动创建,所以主线程可以直接创建handler。在new handler的时候没有传入指定的looper就会默认绑定当前创建handler的线程的looper,如果没有looper就报错。如果自己开个子线程,那肯定得自己创建looper对象啊,或者用HandlerThread,的getlooper也行。
这个图解很形象吗,没觉得
这种解释原理性的东西,最好能用图来表示,一目了然,支持的点赞!
第一次看确实完全听不懂,学习了一段时间之后回头来看一遍就听懂了。所以,不用急,看多两边就会了
老师告诉你能学到什么?
通过本课程,你将学到: 1、什么是Handler 2、如何使用Handler 3、Handler的原理是什么 4、如何定义一个与线程相关的Handler 5、Android更新UI的几种方式 6、非UI线程真的不能更新UI吗 7、Handler使用过程中遇到的问题

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消