美文网首页
Android Handler机制总结

Android Handler机制总结

作者: WilsonMing | 来源:发表于2021-09-03 10:51 被阅读0次

Handle机制

  • APP的启动过程中调用ActivityThread类main方法初始化MainLooper
  • Handler创建Message并发送给Looper


    image.png
  • Looper循环处理MessageQueue的Message


    image.png

    最后message通过target找到发送消息相对应的handle进行回调处理。

  • 子线程创建handle
Thread {
                //初始化线程looper对象
                Looper.prepare()
                //初始化子线程handler,handler关联子线程looper
                threadHandler =
                    Handler(
                        Looper.myLooper()!!,
                        Handler.Callback {
                            Log.i("milin", "threadHandler:${it.what}")
                            return@Callback true
                        })
                //调用此方法,消息才会循环处理
                Looper.loop();
                //发送消息
                threadHandler?.sendEmptyMessage(123)
            }.start()
  • 主线程Looper.loop()一直死循环,为什么没有卡死?
    主要死循环中Looper.loop()中
Message msg = queue.next(); // might block

没有消息Linux底层一直在等待,不占用CPU。

image.png
具体看nativePollOnce函数分析

文章

相关文章

网友评论

      本文标题:Android Handler机制总结

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