Handler机制

本文介绍Android中的Handler机制,包括其工作原理及基本使用方法。在Android应用中,为确保UI更新流畅,通常将耗时任务放在非UI线程执行,而Handler则用于实现线程间通信,以便从后台线程更新UI。
摘要由CSDN通过智能技术生成

Handler机制

每个android应用在启动时都会开启一个线程,该线程称为UI线程。正常情况下,所有操作都运行在该线程中。但为了UI更新的流畅,通常将耗时操作放置于其它线程中运行。但android要求所有涉及到UI的操作必须在UI线程中执行。于是在其它线程耗时操作完成时如果需要更新UI,就需要使用线程异步通信,即本文提到的Handler机制。

基本使用

      final Handler myHandler = new Handler(){
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                Log.e("ZXX", msg.arg1 + "");
                Log.e("ZXX", msg.arg2 + "");
                Log.e("ZXX", (String)msg.obj);
                //利用message中的值 更新UI
            }
        };

        new Thread(new Runnable() {
            @Override
            public void run() {
                //耗时操作
                Message message = myHandler.obtainMessage();
                message.arg1 = 1;
                message.arg2 = 2;
                message.obj = "abc";
                myHandler.sendMessage(message);
            }
        }).start();

handler的基本操作很简单,但其机制还是需要了解一下的。

先是基本概念,一个线程会关联一个消息队列,消息队列要有一个Looper对象来不断的循环取消息,并分给对应的Handler处理。Handler除了负责处理消息外还负责发送消息,并且在发送时将自身设置进Message 消息的target中,当Looper取出消息时便可以根据这个target将消息分发给对应的handler处理。

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值