概念
为什么要使用handler?
- 按计划发送消息或执行某个Runnanble(使用POST方法),类似定时器;
- 从其他线程中发送来的消息放入消息队列中,避免线程冲突(常见于更新UI线程)
handler是异步的,创建一个handler实例是创建一个新的线程吗?
- NO,没有创建新的线程,但是为什么没有阻塞主线程?这是有系统管理Looper的
在同一线程中,handler1发送消息,handler1能收到消息,handler2能收到吗?
- 只能在handler1中收到
.在子线程中,运用主线程中定义的handler,sendMessage,主线程中得handler能收到吗?
- 能
在子线程中创建一个handler实例,并发送消息,这样可以吗???
- 出现异常
HandlerThread是什么,什么时候使用??
- 需要Looper,自己不想创建,因为HandlerThread默认有Looper,有消息队列
Message,Looper,Handler,MessageQueue等地关系如何???
- sendMessage和post的区别是什么??是否共用一个消息队列messageQueue??
- 他们是使用同一个HandlerThread;
- sendMessage和post的区别就是在looper中loop()函数中得dispatchMessage()时有区别