`
微Smile
  • 浏览: 34885 次
  • 性别: Icon_minigender_2
  • 来自: 湖南
社区版块
存档分类
最新评论

android 消息处理机制

 
阅读更多

首先还是推荐几篇博客:

 

http://www.cnblogs.com/-OYK/archive/2011/08/03/2126657.html

 

http://www.cnblogs.com/coolszy/archive/2011/04/25/2026662.html

 

再来说说我的理解:

 

消息处理机制适用场景:

 

比如:a)监听器类中要控制UI界面类很多组件的属性值,可以传参,可以设置static,但这在有大量组件属性值需要变化时就行不通了,这时可以运用消息处理机制在监听器中通知UI界面类,在界面类中改变属性值,并重新绘制UI.

 

b)需要在另外的线程中改变界面。

 

此处注意两个很好用的规则:1)不要在界面线程之外绘制界面。2)不要阻塞界面线程,否则会有不好的用户体验。

 

 

再来解析消息机制有关的两个个变量:Looper类,Handler类

 

Looper类:MessageQueue的管理者

 

Looper类用来管理特定“线程内”对象之间的消息交换(Message Exchange)。你的应用程序可以产生许多个线程。而一个线程可以有许多个组件,这些组件之间常常需要互相交换讯息。如果有这种需要,您可以替线程构造一个Looper对象,来担任讯息交换的管理工作。Looper对象会建立一个MessageQueue数据结构来存放各对象传来的消息(包括UI事件或System事件等)。

 

在一个线程中,如果存在Looper对象,则必定存在MessageQueue对象,并且只存在一个Looper对象和一个MessageQueue对象。在Android系统中,除了主线程有默认的Looper对象,其它线程默认是没有Looper对象。如果想让我们新创建的线程拥有Looper对象时,需要在线程中首先调用Looper.prepare()来创建消息队列,然后调用Looper.loop()进入消息循环。

 

Handler:

 

消息的处理者.Handler的作用是把消息加入特定的(Looper)消息队列中,并分发和处理该消息队列中的消息。构造Handler的时候可以指定一个Looper对象,如果不指定则利用当前线程的Looper创建.然后Handler就可以把消息传给该Looper对象所在的线程,同时Handler也可以接受来自Looper的消息。

 

 

 

 简而言之:Handler.sendMessage()方法把消息传送到looper线程所在的essageQueue队列,然后自动调用Handler.handMessage()方法响应消息并做对应的处理。

分享到:
评论

相关推荐

    Android消息处理机制

    Android消息处理机制是Android系统中实现线程间通信和异步操作的核心机制,它由Message、Handler、Looper和MessageQueue四个关键组件组成。对于新手来说,掌握这一机制至关重要,因为它是构建高性能、响应式应用程序...

    Android 消息处理机制之一

    【Android 开发】: Android 消息处理机制之 Handler 与 Message http://blog.csdn.net/ahuier/article/details/17012005

    Android消息处理机制之Handler 三

    【Android 开发】: Android 消息处理机制之 Handler 中 sendMessage() 源代码剖析 http://blog.csdn.net/ahuier/article/details/17013647

    Android的消息处理机制

    ### Android的消息处理机制详解 #### 一、Android消息处理机制概览 在Android开发中,消息处理机制是非常重要的一个组成部分,它确保了应用程序能够在不同线程之间有效地传递数据和指令,尤其是在更新用户界面(UI)...

    Android消息处理机制之Message 二

    在Android系统中,消息处理机制是应用程序中线程间通信的一种关键方式,它涉及到Handler、Message和Looper等组件。本文将深入探讨Message类,特别是它的`obtain()`方法,以及如何在实际应用中使用Message来实现高效...

    Android 消息处理机制原理 - 简书1

    Android的消息处理机制是其异步编程的核心组成部分,主要用于在主线程和子线程之间安全地传递数据和执行任务。在Android系统中,由于UI线程是单线程模型,所有的界面更新操作必须在主线程中执行,因此,当需要在子...

    Android的消息处理机制--Message,MessageQueue

    ### Android的消息处理机制详解 #### 一、引言 Android应用程序是通过消息驱动的,它借鉴了Windows的消息处理机制,并在此基础上实现了一套适合移动设备的处理机制。本篇文章将详细探讨Android的消息处理机制,...

    Android 事件处理机制

    Android事件处理机制

    Android的消息处理机制--Looper,Handler

    在Android系统中,消息处理机制是至关重要的,它允许开发者在不同的线程间进行通信,尤其是主线程(UI线程)与其他工作线程之间。这一机制主要涉及到两个关键组件:`Looper`和`Handler`。下面我们将深入探讨这两个...

    Android中的消息处理实例之一

    本文介绍了Android中的消息处理机制,给出了Android消息处理中的几个重点类Handler、Message、MessageQueue、Looper、Runnable、Thread的详细介绍,提供了两个消息处理的实例代码,并深入Android源代码分析了使用...

    Android应用程序消息处理机制

    Android应用程序与传统的PC应用程序一样,都是消息驱动的。也就是说,在Android应用程序主线程中,所有函数都是在一个...掌握Android应用程序消息处理机制,有助于我们熟练地使用同步和异步编程,提高程序的运行性能

    Android消息机制

    Android消息机制是指Android系统中的线程间通信机制,该机制负责处理事件的...Android通过这些组件的组合,实现了异步消息处理机制,从而使得在进行耗时操作时,UI线程不会被阻塞,确保了应用界面的流畅性和响应性。

    Android Handler消息处理顺序分析

    在Android开发中,Handler、Looper和Message是实现线程间通信的重要组件,它们共同构建了Android的消息处理机制。本文将详细分析Android Handler消息处理的顺序,以及如何利用这些组件进行异步操作。 首先,理解...

    Android_Handler消息处理机制

    在Android系统中,Handler、Message和Looper构成了一个关键的异步通信机制,即Handler消息处理机制。这个机制允许Android应用程序在不同的线程间传递消息,处理UI更新等操作,是多线程编程中的重要组成部分。下面...

    Android消息处理机制Looper和Handler详解

    【Android消息处理机制详解】 Android应用的运行基于消息驱动模型,这一模型的核心在于Looper、Handler和MessageQueue的协同工作。下面我们将深入理解这三个组件的作用及其交互。 1. **Message(消息)**: - ...

    android消息传送机制

    在Android系统中,消息传送机制是应用程序中进行异步处理和协调组件间通信的重要手段。这一机制主要涉及到了Handler、Looper和Message三个核心组件。在观看魔乐科技的视频后,可能对某些细节存在疑问,这里我们将...

    android消息机制

    Android消息机制是Android系统中处理线程间通信和异步任务的核心组件,它允许应用程序在不同的线程之间安全地交换数据和执行操作。深入理解这一机制对于开发高效、响应迅速的Android应用至关重要。 首先,我们要...

    Android多线程及异步任务消息处理机制 一 Handler的使用

    在Android开发中,多线程和异步任务处理机制是至关重要的,特别是在处理耗时操作如网络请求、数据库操作或大型数据计算时。本篇博文将聚焦于Android中的`Handler`机制,它是Android异步消息处理的核心组件。通过`...

Global site tag (gtag.js) - Google Analytics