美文网首页Android
为什么使用Handler需要Looper

为什么使用Handler需要Looper

作者: 铜角大王 | 来源:发表于2017-08-10 15:50 被阅读0次

    因为在Handler的构造函数里面,mLooper=Looper.myLooper();如果mLooper==null的话,就会抛出“can't create handler inside thread that has not called Looper.prepare()”异常。为什么需要Looper呢?因为Looper的作用是不断的从MessageQueue中通过queue.next()方法取出消息,然后交给Handler处理,而Looper在构造函数中new了一个MessageQueue,并保存了当前线程对象,如果不构造Looper的话,就不会有MessageQueue,所以后面的取出消息就谈不上了,所以使用Handler需要Looper。

    相关文章

      网友评论

        本文标题:为什么使用Handler需要Looper

        本文链接:https://www.haomeiwen.com/subject/epvhrxtx.html