美文网首页
关于Handler的简单理解

关于Handler的简单理解

作者: 撩人的风光 | 来源:发表于2019-03-10 20:36 被阅读0次

    handler主要用于线程的切换,因为在安卓中,主线程不能进行耗时操作,而子线程不能更新UI,所以当子线程网络请求或执行其他耗时任务完成后,在更新UI的时候,需要将获取的数据发送的主线程,这个时候我们经常使用handler进行线程的切换。Handler机制主要涉及到四个类,handlermessageloopermessageQueue,首先message在子线程负责携带消息进行发送,messageQueue相当于一个容器,对发过来的消息进行统一处理,looper相当于消息循环器,不停循环消息队列中的消息,交给消息处理者handler进行消息处理。

     

    关于主线程向子线程发消息的问题:因为Android主线程默认持有looper循环器,所以当我们在主线程创建了handler以后,子线程发消息后,handler会通过已有的looper获取到消息队列中的消息,但是,如果handler创建在子线程,子线程是没有looper的,所以需要我们手动调用looper.prepare()方法,然后当子线程的handler需要数据的时候,调用looper.loop()方法去循环消息队列中的消息。

    相关文章

      网友评论

          本文标题:关于Handler的简单理解

          本文链接:https://www.haomeiwen.com/subject/qwvppqtx.html