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

Android面试常客Handler详解

难度中级
时长 2小时 0分
学习人数
综合评分9.30
169人评价 查看评价
9.7 内容实用
9.3 简洁易懂
8.9 逻辑清晰
  • http://www.imooc.com/wenda/detail/267315我最近发布了这个帖子跟老师有些出入,希望老师能够解答下
    查看全部
  • handler是Android给我们提供用来更新ui的一套机制也是一套消息处理机制,我们可以发送消息,也可以通过它处理消息
    查看全部
    0 采集 收起 来源:Handler是什么

    2015-06-03

  • handler looper messagequeue之间的关系
    查看全部
  • 非UI线程能否更新UI --> 刚启动的时候,立即在非UI线程中更新UI --> 不报错 --> 休眠2s钟以后,更新 --> 报错 更新UI --> 会调用checkForRelayout()方法 --> invalidate()方法 --> invalidate(true)方法,关注viewParent --> ViewRootImpl是ViewParent的实现类 --> p.invalidateChild() --> 查看ViewRootImpl.invalidateChild() --> checkThread()方法 --> 判断UI线程是否是当前线程,不相等抛出异常 ViewRootImpl是onResume()方法才会创建。所以onCreate()方法中要延迟后会保持 handleResumeActivity()方法 --> viewManager.addView() --> ViewRootImpl初始化
    查看全部
  • handler 负责发送消息 looper 负责接收 handler 发送的消息 并直接把消息回传给 handler 自己 MessageQueue 就是一个存储消息的容器
    查看全部
  • Handler/Looper/Message 三者的关系
    查看全部
    0 采集 收起 来源:课程内容介绍

    2015-05-27

  • Handler负责发送消息,Looper负责接收Handler发送的消息,并直接把消息回传给Handler自己,MessageQueue就是一个存储消息的容器。
    查看全部
  • 一、handler封装了消息的发送,发送会有地址,一般是一个MessageTarget,通过handler发送消息,默认情况下发送给自己 Looper轮询 1.内部包含一个消息队列,所有的handler发送的消息会装入这个消息队列 2.Looper.Looper方法,是死循环,不断从MessageQueue取消息,如有消息就处理,没有就阻塞 二.MessageQueue可以添加并处理消息 三、handler内部跟Looper进行关联,在handler内部可以找到looper,也就找到了MessageQueue,在handler中发消息就是向消息队列发消息(关联方法写在了handler的构造方法中) 总结:handler负责消息发送,looper负责接收handler发送的消息,并直接把消息回传给handler自己,messagequeue是一个存储消息的容器
    查看全部
  • 类似多线程并发问题 加锁会导致性能下降 更新UI的机制:handler机制;不用去关心多线程问题,所有更新UI的操作,都是在主线程的消息队列中去轮训处理的
    查看全部
  • 1.利用handler发送消息 一种实例化Message方法: Message msg=new Message(); 一种调用handler.obtainMessage(): Message msg=handler.obtainMessage(); 2.利用handler移除消息 handler.removeCallbacks(myRunnable); 3.可以指定callback 创建handler时指定一个callback,重写handlerMessage()法 利用callback截获handler的消息
    查看全部
  • handler.removeCallbacks(Runnable r); 可以在handler(Callback的接口中进行截获);注意:callback接口中handleMessage(Message msg)中若截获则一定返回true;
    查看全部
  • handler: 创建一个进程时就是一个main线程,运行message queue,管理顶层的activity,broadcast receivers等。 自己创建的线程通过handler和主线程通信,调用post和sendmessage方法,给定的runnable或者message会被放入handler的message queue并在适当时机执行
    查看全部
  • 总结:handler负责发送消息,looper负责接收handler发送的消息,并直接把消息回传给handler自己. MessageQueue就是一个存储消息的容器.
    查看全部
  • handler的原理图解--举例
    查看全部
  • 1.handler是安卓提供的用来更新ui的机制,也是一套消息处理机制,可以通过他发送消息、处理消息。 2.Android设计时封装了消息创建、传递、处理机制,如果不遵循该机制,无法更新UI信息,会抛出异常(不可再非ui线程中更新ui)
    查看全部
    0 采集 收起 来源:Handler是什么

    2015-05-20

举报

0/150
提交
取消
老师告诉你能学到什么?
通过本课程,你将学到: 1、什么是Handler 2、如何使用Handler 3、Handler的原理是什么 4、如何定义一个与线程相关的Handler 5、Android更新UI的几种方式 6、非UI线程真的不能更新UI吗 7、Handler使用过程中遇到的问题

微信扫码,参与3人拼团

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

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