码迷,mamicode.com
首页 > 移动开发 > 详细

Android开发之异步消息处理机制Handler

时间:2015-07-11 12:05:31      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

Android中的异步消息处理主要有四个部分组成,Message, Handler, MessageQueue和 Looper.

1.Message。

在线程之间传递的消息,可以内部携带少量的信息,用于在不同线程之间交换数据。可以使用what字段,arg1和arg2携带一些整型数据,obj字段携带一个object对象。

2.Handler。

Handler,处理者的意思,它主要用于发送和处理消息的。发送消息一般使用Handler的sendMessage()方法,而发出的消息经过一系列地辗转处理后, 最终会传递到Handler的HandlerMessage()方法中。  

3.MessageQueue。

消息队列的意思,主要用于存放所有通过Handler发送的消息,这部分消息会一直存放于消息队列中,等待被处理,每个线程中只会有一个MessageQueue对象。

4.Looper。

Looper是每个线程中的MesssageQueue的管家,调用Looper的loop()方法后,就会进入到一个无线循环中,然后每当发现MessageQueue中存在一条消息,就会将他去除,并传递到Handler的handlerMessage()方法。每个线程中也只会存在一个Looper对象。

 

使用Handler处理异步消息的流程如下:

1.主线程中创建一个Handler对象,并重写handlerMessage()方法。

2.在子线程中需要进行UI更新操作时,就创建一个Message对象,并通过Handler对象的sendMessage()方法将这条消息发送出去

3.发出去的消息被添加到了MessageQueue的队列中等待被处理。

4.Looper则会一直尝试从MessageQueure中取出等待被处理的消息,然后分发给Handler的handlerMessage()方法。

5.由于Handler是在主线程中创建的,此时handlerMessage()方法中的代码也会在主线程中运行,就可以更新UI操作了。

Android开发之异步消息处理机制Handler

标签:

原文地址:http://www.cnblogs.com/liyiran/p/4638287.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!