handler

本文深入讲解了Android开发中Handler的工作原理及其应用场景,并介绍了Looper的作用及如何配合Handler完成线程间通信。

首先说一下handler 吧,具体的讲法,一切和屏幕相关的都是handler处理的;

 以我的看法吧,   它相当于一个主线程,我们都知道,在子线程中是不能更改UI的,比如说你想要在一个子线程中去更改UI

这时候就你可以创建一个handler对象通过传达消息的方法在handler中去修改子线程当中的UI了;

##Handler的创建##

    那么我们如何去创建一个handler呢? 其实很简单,就像对象一样new 出来就行了

    Handler handler=new Handler(){

    //在这里需要注意的是你导的包可不能导错了;通常我们导的都是android:os这个包

//在这里面我们需要重写一个handlerMessage();重写这个方法有什么用呢? 我们说在子线程发送消息到handler中

//主要是通过下面重写的这个方法来接受消息的;这样子接收到 消息才能更改子线程里面的内容的;msg就是接收的消息;

Handler handler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);

    }
};

上面这样子就可以实现Handler的通信了;

###android中的两条规定:

    1.子线程不允许使用网络

    2.就是子线程不允许修改UI;


##Looper 循环者
Looper线程
是一个无限循环的线程,调用looper.prepare()方法将一个普通线程提升到一个循环者,提升到循环者后,会添加一个MessageQueue的消息队列,在调用looper.loop()方法,无限循环来MessageQueue取消息,转发消息的Handler来处理;


        其实Handler是一个灵活的线程环境;用Handler来发送消息呢,就要绑定一个Looper中的MessageQueue,不管

   哪条线程发送消息,总是发送到他绑定的消息队列中,循环则将消息取出来,再送给发消息的Handler处理,这时候已经

完成了线程通信了;


面试:

    1.view的是事件分发;

    2.Android线程通信;

    

在下乃一枚新生,有什么写的不好的地方,还望各位指点指点,,


         


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值