【Android机制】-- Handler运行机制的理解

在Android开发中,机制是必不可少的,占据着举足轻重的地位,因此作为一位开发者,掌握机制相关的技术是很有必要的。相信很多开发者在面试者或多或少都被问过这方面的问题.

【面试技巧】在回答Handler机制时,从Handler的作用开始说起,最后具体到Handler机制在日常开发中的作用,这样的回答理论与实际相结合就比较完善。

在机制的中有两种比较重要,分别是Binder机制和Handler机制。
1. 前者用于跨进程通讯,并且通过 ServiceManager 给上层应用提供了大量的服务,
2. 而后者用于进程内部通讯,以消息队列的形式驱动应用的运行。

1.Handler

1.1 handler的初步理解
    Handler机制是事件驱动程序设计模型在Android开发中的应用,它与其他线程协同工作,接收其他线程的消息并通过该消息更新主线程的内容。
    整个Android Framework 都是基于Handler 机制来运行的,如APP响应点击事件、启动Activity、UI界面的更新等。在日常开发中,handler通常用于异步请求,如网络请求等,同时Handler 也用于定时操作,发送定时消息。
    Handler机制包含4个主要对象:Message、MessageQueue、Looper以及Handler,他们的作用分别为:
  • Message是在线程之间传递的消息;
  • MessageQueue作为一个消息集合,用来存放Runnable和Message;
  • Looper不停循环消息队列,只要有消息就从中取出

4个对象各司其职,完成了线程之间的完美通信。如果想在自己的线程中创建Handler必须调用Looper的prepare()与loop()两个方法。下面通过一个图例来梳理整个Handler消息处理流程:
这里写图片描述

从该图可以清晰地看出整个Handler 消息机制处理流程。Handler消息处理首先需要在UI线程中创建一个Handler对象,然后在子线程中调用Handler的sendMessage()方法,接着这个消息会存放在UI线程的MesssgeQueue中,通过Looper对象取出MessageQueue中的消息,最后分发回Handler 的handlerMessage()方法中。

待续。。。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章