您的位置:首页 > 移动开发 > Android开发

Android:Handler消息传递机制

2015-07-30 20:18 411 查看
一、存在Handler类的背景:

当一个Android程序第一次启动时,Android会同时启动一个主线程(Main Thread),主线程主要负责处理与UI相关的事件。因此,可以理解为执行UI操作的线程就是主线程,这个主线程的执行是由onCreate()方法完成的。

当存在多个线程同时操作UI控件时,Android的UI被控局面就会产生失控现象,就是说UI操作存在线程安全问题。据此,Android规定:只允许UI线程(主线程)有权利修改UI组件。那么多线程机制中的其他任务线程(子线程、工作线程)又如何处理、修改、控制与UI相关的事件呢?这种情况下就产生了能在任务线程中发送消息、在主线程中获取、处理消息的Handler类。

二、Handler类的特点:

1.、传递Message,用于接受任务线程发送的消息(数据), 并用此数据配合主线程更新UI。

在Android中,对于UI的操作通常需要放在主线程中进行操作。如果在子线程中有关于UI的操作,那么就需要把数据消息作为一个Message对象发送到消息队列中,然后,由Handler中的handlerMessage方法处理传过来的数据信息,并操作UI。

注意:Handler对象是在主线程中初始化的,因为它需要绑定在主线程的消息队列中。

Handler类中sendMessage(Message msg)方法实现发送消息的操作。 在初始化Handler对象时重写的handleMessage方法来接收Messgae并进行相关操作。

2、 传递Runnable对象。用于通过Handler绑定的消息队列,安排不同操作的执行顺序。

Handler对象在进行初始化的时候,会默认的自动绑定消息队列。利用类sendXXXX()方法,可以将Runnable对象发送到消息队列中,按照队列的机制按顺序执行不同的Runnable对象中的run方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: