Handler原理

什么是Hanlder ?

答: 消息传递机制,作用:将子线程中需要更新UI的消息传递给主线程处理

怎么使用?

答: 不会使用

为什么使用

答 :多个线程并发更新UI的同时,保证线程安全

  此话怎讲?
  答: 1.谷歌不让在子线程中更新UI:如果在子线程中可以直接更新ui,那么会导致线程不安全,引起
      多线程并发的问题,造成页面更新混乱,如果加上锁机制,会影响app性能下降
      2.谷歌不让主线程中作耗时的操作:在主线程中做耗时的操作会导致线程阻塞,就比如说家里通
      电的主线加上了电阻,家里的电器因为电压不够,不能正常工作了,解决方案:不在主线程中做耗
      时的操作

  既要做耗时的操作也要更新UI怎么做?
  答:使用handler呀!
消息机制的四个核心对象有那些,有什么关系

Handler、Message、Message Queue、Looper

工作流程解析
Handler机制的工作流程主要包括4个步骤:

  1. 异步通信准备
  2. 消息发送
  3. 消息循环
  4. 消息处理
异步通信准备:
答:在app启动的时候,会调用ActivityThread中main函数,在mian函数中会为主线程创建1个
1.Looper对象,同时生成1个消息队列对象>(MessageQueue),Looper.prepareMainLooper();
2.创建主线程ActivityThread thread = new ActivityThread();
3.自动开启消息循环 Looper.loop(); 

你可能感兴趣的:(Handler原理)