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