【Android 开发】: Android 消息处理机制之三: Handler 中 sendMessage() 源代码剖析

  阅读此文,请先阅读以下相关连接:

  1. Android 消息处理机制之一: Handler与Message
  2. Android 消息处理机制之二: Message中obtain()源代码剖析

  在前面的两件中我们学习了Handler和Message的基本使用方法[Android消息处理机制之Handler与Message],还有Message中obtain()的几种重载方法的使用方式的不同[Android消息处理机制 Message中 btain()源代码剖析],这一讲我们来学习一下Handler中的sendMessage()的几种重载方法的使用方式的不同以及它们的源代码的剖析.

  通过前面几讲的内容,我们知道Android不但可以使用异步任务处理多线程的问题,还可以通过Handler + Message + Thread 的方式进行,例如更新主线程UI等.整个架构图如下所示:


  下面我就通过一个Demo来学习一下Handler中sendMessage()方法的几种重载方法,以及跟踪它们的源代码来知道它们之间的关系。

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

点击按钮发送消息,在Handler中做消息的处理。只发送一个带有what属性的消息

            case R.id.button1:
                new Thread(new Runnable() {
                    // 查看Handler的api,它有几种sendMessage()的方式
                    @Override
                    public void run() {
                        // 使用public final boolean sendEmptyMessage (int what)
                        mHandler.sendEmptyMessage(3);
                    }
                }).start();
                break;
在Handler中将消息取出打印在控制台中

    // Handler 可以接受或者发送消息,从消息队列中提取消息,用户更新UI的操作
    protected static Handler mHandler = new Handler() {
        @Override
        public void handleMessage(android.os.Message msg) {
            System.out.println("--> what: " + msg.what);
        }
    };
[分析源代码]:

  • 11
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值