概念

  1. 为什么要使用handler?

    • 按计划发送消息或执行某个Runnanble(使用POST方法),类似定时器;
    • 从其他线程中发送来的消息放入消息队列中,避免线程冲突(常见于更新UI线程)
  2. handler是异步的,创建一个handler实例是创建一个新的线程吗?

    • NO,没有创建新的线程,但是为什么没有阻塞主线程?这是有系统管理Looper的
  3. 在同一线程中,handler1发送消息,handler1能收到消息,handler2能收到吗?

    • 只能在handler1中收到
  4. .在子线程中,运用主线程中定义的handler,sendMessage,主线程中得handler能收到吗?

  5. 在子线程中创建一个handler实例,并发送消息,这样可以吗???

    • 出现异常
  6. HandlerThread是什么,什么时候使用??

    • 需要Looper,自己不想创建,因为HandlerThread默认有Looper,有消息队列
  7. Message,Looper,Handler,MessageQueue等地关系如何???

  8. sendMessage和post的区别是什么??是否共用一个消息队列messageQueue??
    • 他们是使用同一个HandlerThread;
    • sendMessage和post的区别就是在looper中loop()函数中得dispatchMessage()时有区别