Android 通过 Context提供getSystemService的接口, 而是实现类是 ContextImp

ContextImpl.java 的Load时(Static),会创建一堆 service proxy 对象,而后将其放入HashMap表中, 比如StatusBarManager

当用户调用 Service 方法的时候, Proxy 对象会将其传给真正在 ServiceManager 中注册的 Service. 表面上看就是 Manager是 Proxy对象, Service 是真正的对象.

这样的好处:
当 Service 不存在时,用户依然可以调用 Manger的接口,只是传不到Service, 基本没有任何动作而已
本文介绍了Android系统中Context提供的getSystemService接口如何通过ContextImpl加载一系列服务代理对象,并将这些对象存放在HashMap表中。详细解释了当用户调用服务方法时,代理对象如何将请求传递给实际的服务组件。
806

被折叠的 条评论
为什么被折叠?



