Android Handler

本文详细介绍Android开发中的Handler机制,包括其基本概念、使用流程及如何通过Handler实现线程间的通信。Handler作为Android应用开发中的重要组件,对于实现复杂的UI更新和后台任务管理至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接触android的应用开发已经有一个多月了,对于控件的使用,比较容易掌握,通过xml配置布局,在主程序中建立对应的控件,设置监听,完成用户动作,我说的也只是入门级的水平,本人也是入门级菜鸟,哈哈!对我而言,初学的难度在于handler的使用上,所以在这里详细介绍一下!

Handler从字面上看就是一个句柄,用于负责发送和处理相应消息,它包括两种队列:线程队列和消息队列,分别通过post和sendmessage来实现。

使用Handler的流程:

1、创建Handler对象,可以直接使使用Handler无参构造函数,创建对象,也可以继承handler类,重写HandlerMessage函数,然后创建Handler对象。

Handler handler = new Handler(){
public void handleMessage(Message msg) {

//执行方法
}
};

2、建立Runable对象,复写run方法,run方法中是将要执行的操作。

Runnable mThread = new Runnable() {
int i = 0;
@Override
public void run() {
// TODO Auto-generated method stub

//执行方法
}
};

3、在监听入口中,调用Handler的post或者postDelayed方法,将要执行的线程对象(Runable对象)加入到线程队列中。也可以用sendMessage发送消息,处理消息的地方就是复写的HandlerMessage里。可以通过obtainMessage,获取消息,传递参数。

handler.post(mThread);

或者

Message msg = handler.obtainMessage();
msg.arg1 = i;

handler.sendMessage(msg);

想要线程停止,可以调用Handler对象的removecallbacks(Runable r)从线程队列中移除线程对象。

注意:线程对象和消息对象分别对应线程队列和消息队列,处理也是分成了post和SendMessage两种,要加以区分。

Handler分发Message对象和Runable对象到主线程,每个handler实例都会绑定到创建他的线程中。

ps:我也看书和自己练习总结的,可能有说的不清楚的地方!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值