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

Android异步消息处理机制——handle与Looper,AsyncTask

时间:2015-06-20 20:47:18      阅读:1136      评论:0      收藏:0      [点我收藏+]

标签:

Android线程间的通讯采用异步消息处理机制,主要由四部分组成,包括Message,Handler,MessageQueue和Looper。

一个线程只有一个Looper与Messagequeue,但可以有多个handler实例。

例:线程A发消息Message,线程B处理消息Message。

需要在线程B中新建一个Handler实例handler,在A线程中通过该handler发送消息到线程B中的Messagequeue中,

通过B中的Looper以及先进先出的原则取出该消息并处理消息,所以B中的handler实例必须要重载handleMessage方法。

对于Handler的使用,有如下值得自己注意的地方:

1、摘自http://blog.csdn.net/itachi85/article/details/8035333

Handler创建消息时首先查询消息池中是否有消息存在,如果有直接从消息池中取得,如果没有则重新初始化一个消息实例。使用消息池的好处是:消息不被使用时,并不作为垃圾回收,而是放入消息池,可供下次Handler创建消息时使用。消息池提高了消息对象的复用,减少系统垃圾回收的次数。消息的创建流程如图所示。

技术分享

2、AsyncTask与handler使用起来的区别

Android异步消息处理机制——handle与Looper,AsyncTask

标签:

原文地址:http://www.cnblogs.com/xingyi7/p/4590975.html

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