Service组件

2020-03-30  本文已影响0人  涵仔睡觉

一、流程图

启动Service的流程(bindService和StartService)如下:


image.png

参考:bindService启动过程以及原理解析

二、bindService

2.1 ContextImpl#bindService -> ContextImpl#bindServiceCommon

image.png

1、 ServiceConnection无法跨进程通信,因此将它放在InnerConnection类中,InnerConnection类是的子类,可以跨进程通信。


image.png image.png image.png

2、 ActivityManagerService为IActivityManager.Stub的子类,将InnerConnection对象作为参数,跨进程调用ActivityManagerService的
bindService方法。

2.2 ActivityManagerService#bindService -> ActiveServices#bindServiceLocked -> bringUpServiceLocked -> realStartServiceLocked

image.png
上一篇 下一篇

猜你喜欢

热点阅读