在android开发过程中这个方法一定不会陌生,比如我们在获取WindowManager和LayoutInflater对象的时候就需要我们调用这个方法。这个方法在context这个抽象类的一个抽象方法,《Context》简单说明这篇简单的博客中我们知道Activity,Servive等组建对应的Context这个接口的实现类是ContextImpl这个类。那么就让我们看看这个ContextImpl是怎么实现getSystemService这个方法的:
private static final HashMap<String, ServiceFetcher> SYSTEM_SERVICE_MAP =
new HashMap<String, ServiceFetcher>();
@Override
public Object getSystemService(String name) {
ServiceFetcher fetcher = SYSTEM_SERVICE_MAP.get(name);
//调用ServiceFetcher 提供的getService来获取name制定的对象
return fetcher == null ? null : fetcher.getService(this);
}
<