Android Handler机制的原理

来源:互联网 发布:简易计税算法 编辑:程序博客网 时间:2024/05/27 14:12

一、设计这套机制的原因

主要是为了解决在非UI线程中更新UI组件比较麻烦的问题。

二、如何实现这套机制

UI线程中有一个线程专属的Looper对象,它负责安排所有准备在UI线程上执行的代码。Looper对象通过消息机制接受系统或者应用的其他线程提交的准备在UI线程上执行的代码。

Handler对象发送一个消息给Looper对象,这个消息中可以包含一定的数据(消息的what域和obj域就是用来包含数据的),要执行的代码就是Handler中的handleMessage方法,该方法会收到发送给Looper的消息,进而可以从中取出数据再执行代码。

主线程起来以后有一个消息队列,同时和该队列配对的有一个轮询,而子线程有这个消息队列的引用,那这样,子线程处理完以后就会向主线程的消息队列发消息,主线程轮询自己的队列,发现有未处理的消息就进行处理。这就是handler的机制


1 0
原创粉丝点击