美文网首页
10-3 主线程消息循环

10-3 主线程消息循环

作者: Yue_Q | 来源:发表于2019-01-08 19:42 被阅读0次

  Android 的主线程就是 ActivityThread,主线程的入口方法是 main,在 main 方法中系统会通过,Looper.prepareMainLooper() 方法创建主线程Looper 以及 MessageQueue,并通过 Looper.loop()方式开启循环。
  主线程开启后,ActivityThread 还需要一个 Handler 来和消息队列进行交互,这个 Handler 就是 ActivityThread.H,它内部定义了一组消息类型,主要包括了四大组件的启动和停止过程

主线程的消息循环模型

  ActivityThread 通过 ApplicationAMS 进行进程间的通信,AMS 以进程间通信的方式完成 ActivityThread 的请求后会回调 ApplicationBinder 方法,然后 ApplicationThread 会向 H 发送消息,H 收到消息后会将 ApplicationThread 中的逻辑切换ActivityThread (主线程)中去执行。


什么是ApplicationThread
ApplicationThreadActivityThread(主线程)的内部类,也是一个Binder对象。在此处它是作为IApplicationThread 对象的server端等待client端的请求然后进行处理,最大的client就是AMS.

相关文章

  • 10-3 主线程消息循环

      Android 的主线程就是 ActivityThread,主线程的入口方法是 main,在 main 方法中...

  • 消息循环机制及其原理

    一、什么是消息循环 消息循环概述:Android的消息循环是针对线程的,每个线程都可以有自己的消息队列和消息循环,...

  • Android应用程序线程的消息循环模型

    Android应用程序线程的消息循环模型 Android应用程序线程的三种消息循环模型:应用程序主线程消息循环模型...

  • ios RunLoop消息循环

    RunLoop消息循环 (每个线程都有一个消息循环)只有主线程的消息循环默认开启,子线程的默认不开启. 干什么用的...

  • Looper、Handler、Message

    Looper 用于在线程上运行消息循环的循环者。 Threads默认没有消息循环,线程通过调用Looper.pre...

  • 日常小笔记(二)

    12、Hander持有对当前线程消息队列MessageQueue和消息循环Looper的引用 13、子线程与子线程...

  • iOS基础知识梳理 - Runloop

    消息循环 消息循环在主线程上的使用 消息我们可以简单的把消息理解为用户的输入事件 循环 什么是RunLoop ru...

  • android的Handler机制

    Android通过Looper、Handler来实现消息循环机制,android的消息循环是针对线程的,每一...

  • 第十五章 消息循环模型 - 草稿

    'Android应用程序主线程在启动完成之后,会主动进入到一个消息循环中,即Android应用主线程是具有消息循环...

  • 网络的基本概念 Socket的使用案例

    runloop 循环保证线程不退出->程序不退出 在循环中有一个阻塞式的函数,等待接收消息. 没有消息的时候线程休...

网友评论

      本文标题:10-3 主线程消息循环

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