android handler 传递对象,Android之Handler消息传递机制详解

前言

在Android开发中,多线程应用是非常频繁的,其中Handler机制随处可见.

下面就本人对Handle的一些理解与大家一起分享,共同回顾下Handle异步消息传递机制。

1.Handler是什么?

Handler是一套在 Android开发中 进行异步消息传递的机制。

2.Handler在Android中的作用

在Android开发中多线程的应用中,将工作线程中需更新UI的操作信息 传递到 UI主线程,从而实现 工作线程对UI的更新处理,最终实现异步消息的处理。

3. 我们为什么要使用Handler去处理更新UI操作呢?

在多个线程并发更新UI的同时 保证线程安全。

4.Handler异步消息传递所涉及的相关概念

MainThread (主线程)UI线程,程序启动时自动创建。

工作线程,开发者自己开启的线程,执行耗时操作等。

Handler(处理者) UI线程与子线程通信的媒介,添加消息到消息队列(Message Queue)处理循环器分发过来的消息(Looper)。

Message (消息) Handler接受&处理的对象,存储需要操作的消息。

Message Queue(消息队列) 数据存储结构,采用先进先出方式,存储Handler发过来的消息。

Looper(循坏器)消息队列与处理者的媒介,从消息队列中循环取出消息并发送给Handler处理。

5.使用方式

Handler的使用方式 因发送消息到消息队列的方式不同而不同(两种)

使用Handler.sendMessage()、使用Handler.post()

1.使用 Handler.sendMessage()方式

/**

* 方式1:新建Handler子类(内部类)

*/

// 步骤1:自定义Handler子类(继承Handler类) & 复写handleMessage()方法

class mHandler extends Handler {

// 通过复写handlerMessage() 从而确定更新UI的操作

@Override

public void handleMessage(Message msg) {

...// 执行UI操作

}

}

// 步骤2:在主线程中创建Handler实例

private Handler mhandler = new mHandler();

// 步骤3:创建所需的消息对象

Message msg = Message.obtain(); // 实例化消息对象

msg.what = 1; // 消息标识

msg.obj = "AA"; // 消息内容存放

// 步骤4:在工作线程中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值