-
http://www.imooc.com/wenda/detail/267315我最近发布了这个帖子跟老师有些出入,希望老师能够解答下查看全部
-
handler是Android给我们提供用来更新ui的一套机制也是一套消息处理机制,我们可以发送消息,也可以通过它处理消息查看全部
-
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 三者的关系查看全部
-
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/150
提交
取消