Looper是Handler和消息队列之间通讯桥梁,程序组件首先通过Handler把消息传递给Looper,Looper把消息放入队列。Looper也把消息队列里的消息广播给所有的Handler,Handler接受到消息后调用handleMessage进行处理。在我的代码中找不到Looper这样的类,它是不隐藏的啊?希望明白的兄弟给解释下,多谢!

解决方案 »

  1. 你的代码里没有因为你没有自己用到这个桥梁。这个桥梁framework的ActivityThread给你做好。你要用的话可以参考HandlerThread
      

  2. 主线程中有已经初始化好的 Looper 子线程中没有这个玩意,但是你自己可以初始化一个消息队列,调用Looper.prepare();
    并在线程最后调用Looper.loop();想看桥梁怎么实现的,请查阅源码 看看这连个函数的具体实现
      

aliyun

类似问题 »