Android消息处理机制之三:Handler中sendMessage源代码剖析

Handler中sendMessage源代码剖析。

参考自 AHuier的 Handler 中 sendMessage() 源代码剖析

1、 使用Handler中的sendEmptyMessage(int what)方式来发送消息.

sendEmptyMessage (int what)

——> sendEmptyMessageDelayed(int what, long delayMillis)

——>sendMessageDelayed(Message msg, long delayMillis)

——>sendMessageAtTime(Message msg, long uptimeMillis)

——>enqueueMessage(Message msg, long when)

2、 使用Handler中的sendEmptyMessageAtTime(int what,long uptimeMillis)方式来发送消息.

sendEmptyMessageAtTime(int what,long uptimeMillis)

——>sendMessageAtTime(msg, uptimeMillis)

3.、使用Handler中的sendEmptyMessageDelayed (int what, long delayMillis)方式来发送消息。

sendEmptyMessageDelayed(int what, long delayMillis)

——>sendMessageDelayed(Message msg, long delayMillis)

——>sendMessageAtTime(Message msg, long uptimeMillis)<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android消息处理机是指Android系统用于处理异步任务的一种机。它基于事件驱动的方式,通过消息队列和线程来实现异步任务的处理。 在Android消息处理机主要包括HandlerMessage和Looper三个核心组件: 1. HandlerHandler消息处理的核心,它用于发送和处理消息。每个Handler对象都关联一个特定的线程,并且在该线程处理消息。通过Handler,我们可以发送消息消息队列,或者处理消息队列消息。 2. MessageMessage消息的载体,用于在不同线程之间传递信息。每个Message对象包含了一个标识符(what)、一个可选的整数参数(arg1和arg2)、一个可选的对象参数(obj)以及一个可选的Handler对象(target)。通过这些属性,我们可以传递需要处理的信息和相关的数据。 3. Looper:Looper是一个消息循环器,它用于不断地从消息队列取出消息,并将其分发给对应的Handler进行处理。每个线程只能有一个Looper对象,它通过轮询机实现不断地从消息队列取出消息。 当我们需要在某个线程处理异步任务时,可以创建一个Handler对象,并将其关联到该线程的Looper。然后,我们可以通过Handler发送消息消息队列,并在对应的Handler处理这些消息。这样就可以实现在不同线程之间进行通信和任务处理。 总的来说,Android消息处理机提供了一种简单而有效的方式来处理异步任务,使得我们能够更好地进行多线程编程和实现UI更新等操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值