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

Android面试常客Handler详解

难度中级
时长 2小时 0分
学习人数
综合评分9.30
169人评价 查看评价
9.7 内容实用
9.3 简洁易懂
8.9 逻辑清晰
  • 更新UI的几种方法 1、activity.runOnuiThread 2、handler post 3、handler sendMessage 4、View.post
    查看全部
  • handler 是什么?
    查看全部
    1 采集 收起 来源:课程内容介绍

    2015-01-23

  • 1.handler是什么:handler是android给我们提供用来更新UI的一套机制,也是一套消息处理的机制,我们可以发送消息,也可以通过它处理消息 2.android 在设计的时候,就封装了一套消息创建 传递 处理机制,如果不遵循这样的机制就没有办法更新UI信息,就会抛出异常信息
    查看全部
    0 采集 收起 来源:Handler是什么

    2015-03-20

  • handler负责发送消息,Looper负责接收handler发送的消息,并且直接把消息传回给handler自己 MessageQueue就是一个存储消息的容器
    查看全部
  • 更新UI操作实在主线程的消息队列当中去轮回处理的
    查看全部
  • target:指明地址
    查看全部
  • handler:是android提供的更新UI的机制和消息处理机制
    查看全部
    0 采集 收起 来源:Handler是什么

    2015-01-20

  • handler是:
    查看全部
    0 采集 收起 来源:课程内容介绍

    2015-01-20

  • tip1 private MyRunnable runnable = new MyRunnable; #main onClick(){ handler.removeCallbacks(runnable); }
    查看全部
  • step3 * use Thread + private handler = new Handler(){ ...do more... } + Message msg = handler.obtain(); msg.obj = person;/*Person person = new Person; person.age=23; person.name="nate";*/ handler.sendMessage(msg);
    查看全部
  • step2 *remove Thread *make MyHandler & private it class MyHanlder implment Handler{ --void run(){ ----do sth, like: imgView.setImg( images[index++] ); ----myhandler.post(); --} } private myhandler = new MyHandler; #main myhandler.post();
    查看全部
  • step1 private handler = new Handler(); \\ new Thread(){ --void run(){ ----Thread.sleep(1000); ----handler.post(); --} }
    查看全部
  • step0 new Thread(){ void run(){ textView.setText("aa"); } }.start(); //fail, cannot update UI with ThreadClass
    查看全部
  • 非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.sendMessage() handler.post(Runnable r)--->handler.sendMessage(),内部封装成message(). activity.runOnUiThread()---->判断Thread.currentThread()是否是UIThread.然后利用自身的Handler.sendMessage() view.post()------>ViewRootImpl.getRunQueue().post--->内部也是handler
    查看全部

举报

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

微信扫码,参与3人拼团

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

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