2024年4月8日发(作者:)
handler机制
Android发中,Handler制被广泛应用,它有效地解决了线程间
通信的问题。Handler制由 Android核心框架(Android Framework)
提供,它实现多个线程之间的通信功能和消息传递,以及管理线程之
间消息传递时的同步机制。
一、Handler制简介
Handler主要任务是将子线程发来的消息传递到主线程,也就是
UI线程,从而实现线程间的数据交互和消息传递。Handler制由 3
分组成:Message、Handler、Looper。
(1)Message:即消息,Message象是用来描述线程间传递的数
据,还可以存放一些描述性的信息,例如:what、arg1、arg2等。
(2)Handler:即处理器,Handler一个抽象类,它负责接收子
线程发来的消息,对消息进行处理,并将消息发送到主线程。
(3)Looper:Looper于从 MessageQueue 中取出消息,并将消
息交给 Handler行处理。
二、Handler制实现
(1)构造 Handler象
Handler象通常是在主线程中通过构造函数构造出来的,在构造
函数中可以指定 Looper象,也可以不指定,如果不指定,则 Handler
认使用主线程的 Looper象。
(2)处理子线程消息
Handler象有一个 handleMessage()法,当Looper从
- 1 -
MessageQueue 中取出消息时,会将消息交给 Handler
handleMessage()法,开发者可以重写 handleMessage()法,来实现
对子线程消息的处理。
(3)向子线程发送消息
当需要子线程执行某项任务时,主线程可以通过 Handler
sendMessage()法来发送消息,sendMessage()法会将消息封装成
Message象,并将消息存放至 MessageQueue 中。
三、Handler制应用
(1)定时器
Handler制可以用于实现定时器功能,开发者可以在主线程中通
过 Handler postDelayed()法,设定一段时间后执行某项任务,从而
实现定时器功能。
(2)子线程向主线程传递消息
Handler制也可以用于子线程向主线程发送消息,让主线程来更
新 UI,这样就可以避免 UI程阻塞,提升程序效率。
四、总结
Handler制是 Android发中常用的一种消息传递机制,它有效地
解决了线程间通信的问题,并且可以用于实现定时器功能和子线程向
主线程发送消息等功能。此外,Handler制还可以用于处理多个线程
排队运行的状况,合理地安排线程的执行顺序,从而提升程序的效率。
- 2 -


发布评论