Handler

2015-11-08  本文已影响123人  EvilsoulM

一, 为什么要设计handler

handler根本的目的就是解决多线程并发的问题。

二,handler,MessageQueue,Looper之间的关系

Looper

MessageQueue

Handler

Handler负责发送消息,Looper负责接收Handler发送的消息,并直接把消息会传给Handler自己,MessageQueue就是一个储存消息的容器

三,源码分析

四,例子

 class TestThread extends Thread {
        public Handler handler;
        public Looper looper;
        @Override
        public void run() {
            looper= Looper.prepare();//拿到looper
            handler = new Handler() {
                @Override
                public void handleMessage(Message msg) {
                    super.handleMessage(msg);
                }
            };
            Looper.loop();//开启队列循环
        }
    }

  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_custom_error);

        TestThread thread = new TestThread();
        thread.handler.sendEmptyMessage(0);//发送消息给子线程handler处理
}
上一篇 下一篇

猜你喜欢

热点阅读