=========================================================================
广播的注册分为静态注册和动态注册,静态注册在应用安装时由PMS负责完成注册。
静态注册在应用安装后每一次运行时注册,退出时解除注册。
动态注册需要调用registerReceiver方法,该方法在ContextWrapper.java中实现。
ContextWrapper.java中registerReceiver方法的执行过程:
调用Context对象的registerReceiver方法。
该Context对象为启动ActivityThread时调用createBaseContextForActivity方法返回的ContextImpl对象。
ContextImpl.java中registerReceiverInternal的执行过程:
1.若LoadedApk对象不为null且Context对象不为null,则调用LoadedApk对象的getReceiverDiapatcher方法,获取IIntentReceiver对象。
2.若LoadedApk对象为null或Context对象为null,则创建ReceiverDispather对象,并调用ReceiverDispatcher对象的getIntentReceiver方法,获取IIntentReceiver对象。
3.调用ActivityManager的getService方法,获取AMS代理IActivityManager对象。
4.调用AMS对象的registerReceiver方法,传入IIntentRe