• android开发笔记:Handler、Looper、MessageQueen、Message的关系


    一、什么是handler? 
    注:线程分为主线程(主线程又叫UI线程,只能有一个主线程)和子线程(可以有多个)Handler只能在主线程里运行 
    handler是Android给我们提供用来更新UI的一套机制,也是一套消息处理机制,我们可以发消息,也可以通过它 处理消息。

     二、为什么要用Handle?
    
    • 1
    • 2

    因为android在设计的时候就封装了一套消息创建、传递、处理。如果不遵循就不能更新UI信息,就会报出异常(所谓的异步消息处理) 
    三、 Handler的工作原理? 
    Handler的工作原理是Handler发送消息给MessageQuee给形成Handle MessageQuee再由Handle MessageQuee传递消息给Looper(一个对象)最后由Looper递交给 Handler处理(一个Handler里面必须要有一个Looper)

    Handler、Looper、MessageQueen、Message的关系 
    Message: Handler接收和处理的消息对象

    MessageQueen: 存储消息对象的队列

    Looper: 负责读取MessageQueen中的消息,读到消息之后就把消息交给Handler去处理。

    Handler:发送消息和处理消息

    四、什么是Message Quee 
    Message Quee就是存储消息对象的队列(消息来自于Message)

    五、Handler怎么用 
    Handler主要有发送消息和处理消息两大作用 
    Handler发送消息给Message而Message再由 MessageQueen进行消息的存储,接着由Looper负责读取 MessageQueen中的消息,最后由Handler处理消息。

    总结: 
    Looper的作用:每个线程只有一个Looper,他负责管理MessageQueue,会不断的从MessageQueue取出消息,分发给对象 的handler

    MessageQueue的作用:由Looper管理,而MessageQueue则采用先进的方法来管理Message!

    Handler的作用:它把消息发送给Looper管理的MessageQueue,并负责处理Looper分发给他的消息。

  • 相关阅读:
    Android Layout XML属性
    linux]ubuntu挂载U盘
    Android之NDK开发
    Android 创建永不Kill的Service
    如何编写可移植的c/c++代码
    Android写日志文件类
    Android Activity去除标题栏和状态栏
    linux .bash_profile和.bashrc的什么区别
    ListView.setOnItemClickListener、setOnCreateContextMenuListener无效 为什么
    WCF 第四章 绑定 使用队列技术进行通信
  • 原文地址:https://www.cnblogs.com/firebullio/p/9528681.html
Copyright © 2020-2023  润新知