美文网首页
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