您的位置:首页 > 移动开发 > Android开发

Android Handler机制的原理

2016-07-14 16:55 246 查看

一、设计这套机制的原因

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

二、如何实现这套机制

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

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

主线程起来以后有一个消息队列,同时和该队列配对的有一个轮询,而子线程有这个消息队列的引用,那这样,子线程处理完以后就会向主线程的消息队列发消息,主线程轮询自己的队列,发现有未处理的消息就进行处理。这就是handler的机制
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息