-
Handler大纲 1、Handler是什么? 2、Handler怎么用? 3、为什么使用Handler? 如果我们从网上下载图片显示到控件中如何实现,需要使用Handler来辅助 4、Android为什么要设计只能通过Handler机制更新UI? 5、Handler的原理是什么? 6、使用Handler时候遇到的问题 7、如何实现一个与现场相关的Handler 8、HandlerThread又是什么? 9、如何在主线程给子线程发送消息? 10、Android中更新UI的几种方式查看全部
-
Handler原理查看全部
-
Handler查看全部
-
handler消息机制的处理过程查看全部
-
Handler是UI更新。有一套自己的处理消息查看全部
-
更新UI的几种方式查看全部
-
13:00查看全部
-
虽然没看太懂,但是我的理解大概是这样的吧 activity在onResume()方法判断当前线程是否属于UI线程从而判断能不能够更新UI,在onCreat()方法创建线程然后更新UI的时候可能还没调用到onResume()方法,没来得及判断报错,所以非UI线程就能够实现更新UI。 不知道是不是差不多,水平不够啊。查看全部
-
handler更新ui查看全部
-
handler的post方法传递一个runnable对象可以更新ui查看全部
-
想到可以通过反射改变checkThread方法的行为,这样就能在子线程更新UI了,当然,这么做是没必要的查看全部
-
我解释一下主线程和子线程之间如何相互通信: 1. 子线程向主线程发送消息,必须有主线程的Handler,该Hnadler绑定了主线程的Looper。 2. 主线程向子线程发送消息,必须有子线程的Looper,为了防止Looper没有初始化,所以通过HandlerThread类,来保证子线程的Looper再被主线程调用时已经初始化。 我先写在这里,我觉得讲师的代码特别不好,很容易把初学者绕晕,我看了好久的Handler源码,都是暂定下来分析了代码才清楚的,因为代码原理是: 1. 子线程处理消息的过程中向主线程发送了消息。 2. 主线程处理消息的过程中又向子线程发送了消息。 消息直接循环起来了,我擦。查看全部
-
为什么HandlerThread能够保证主线程调用自己的Looper对象不为null呢,是因为HandlerThread内部使用了wait()和notifyAll()的线程同步机制。查看全部
-
为什么Handler需要和Looper关联,是因为Handler需要往Looper中的mQeueu里插入Message。所以,如果主线程需要和子线程之间通信,那有两个方法: 1. 主线程拥有子线程的Handler(注意:子线程的Handler需要关联自己的Looper),通过该Handler发送消息即可。 2. 主线程创建一个Handler,但是将子线程的Looper传递给Hander,这样Handler也是往子线程Looper对象的mQueue里插入msg,子线程Looper.loop自然可以拿到主线程消息了。 但是,这两种情况都有弊端。就是线程并发的时候,不能保证子线程的Handler或者Looper对象已经被初始化了。所以这个时候才需要用到HandlerThread查看全部
-
这个例子其实是错的,很容易误导。理论上Handler和Looper都应该是领导,只是领导下发了一个Hnadler(对讲机)给你,你通过对讲机告诉领导你要去厕所了。理论上你是再也拿到不到应答的,你只能默认领导同意。 如果你想还能拖裤子去厕所,需要你也把自己的handler传递给领导。然后自己Looper.loop循环监听。查看全部
举报
0/150
提交
取消