handler消息机制是安卓各个进程的核心,是程序可以持续运行而不退出的原因所在,但是原理却很简单,我们完全可以自己手写一个。下面我们的思路是,分析子线程中handler用法,分析源码,找出handler源码里的关键类,最后然后手写一个handler。
第一部分:使用handler
Thread thread=new Thread(new Runnable() {
@Override
public void run() {
//准备looper
Looper.prepare();
//创建hanlder
mHanler=new Handler(Looper.myLooper());
//开启循环
Looper.loop();
}
});
thread.start();
分四步,第一步创建looper,第二步创建handler,第三步开启循环,第四步就是发送消息了。
第二部分:源码分析
1.Looper.prepare();干了什么?
private static void prepare(boolean quitAllowed) {
//判断当前线程是否已经有looper了,设置过了就不能再设置了
if (sThreadLocal.get() != null) {
throw new RuntimeException("Only one Looper may be created per