10-3 主线程消息循环

2019-01-08  本文已影响0人  Yue_Q

  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.

上一篇 下一篇

猜你喜欢

热点阅读