Context 作为 Android 开发中的核心组件,提供了获取系统服务和应用资源的桥梁。
获取系统服务
通过 getSystemService(String name)
方法,开发者能够轻松访问各种系统服务。其内部机制是根据服务名在 SYSTEM_SERVICE_MAP
哈希表中查找对应的服务实例。
SYSTEM_SERVICE_MAP
是一个静态哈希表,在系统初始化阶段, registerService
函数会将常用的系统服务,例如网络连接 (connectivity)、闹钟 (alarm)、蓝牙 (bluetooth) 等注册到该表中。
例如,获取网络连接服务的过程如下:
registerService(CONNECTIVITY_SERVICE, new StaticServiceFetcher() {
public Object createStaticService() {
IBinder b = ServiceManager.getService(CONNECTIVITY_SERVICE);
return new ConnectivityManager(IConnectivityManager.Stub.asInterface(b));
}
});
资源获取
Context 还提供了访问系统资源和应用程序自身资源文件的方法,例如设置壁纸。
设置壁纸
setWallpaper(Bitmap bitmap)
方法为开发者提供了简单的设置壁纸接口,其内部封装了对 WallpaperManager
中接口的调用。
暂无评论