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

Android面试常客Handler详解

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

最新回答 / 纪奕滨
把handler实例化一下:Handler handler=new Handler()

最新回答 / 纪奕滨
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();//使消息循环起作用...

最新回答 / Mark_G
解决了,}.run();改成start()就好了,直接写成run()是调用匿名内部类的方法,而不是开启一个线程,所以没有抛出异常。。。太粗心了。。。

最新回答 / 浪漫随风
 mHandler.postDelayed(myRunnable,2000);在onCreate()里面的这个代码,你试试时间给 0,我觉得是这个问题!

最新回答 / 浪漫随风
HandlerThread,其实主要是担心多线程访问时造成的异常!当然如果只有一个子线程发送消息等操作,那么你可以直接new一个!

最新回答 / 德约
这样说来,不加上sleep方法只是躲开了系统对子线程的追踪,才得以修改UI

最新回答 / 学嗨玩嗨
Ctrl+点击 进不去是你本地没有 需要下载

最新回答 / MyandroidFan
那只有去多看源码,通过源码去理解这些问题了。

最赞回答 / 喜得温词
这是因为你虽然是在子线程中创建的Handler,但是当Handler被创建出来的时候,子线程并没有创建出Looper,而Handler在创建的时候就会与Looper进行绑定(可以去查看源码),所以当你创建出Handler,而子线程没有Looper,所以Handler会与主线程的Looper进行绑定。(因为主线程的Looper在主线程创建出来的时候便也别创建出来)

最新回答 / 这个杀手不太累
可以理解为与UI相关的操作为主线程,执行耗时任务的为子线程
老师告诉你能学到什么?
通过本课程,你将学到: 1、什么是Handler 2、如何使用Handler 3、Handler的原理是什么 4、如何定义一个与线程相关的Handler 5、Android更新UI的几种方式 6、非UI线程真的不能更新UI吗 7、Handler使用过程中遇到的问题

微信扫码,参与3人拼团

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消