Android-BroadCastReceiverAndroid-广播类型

接收系统和应用中的广播

是一种对广播进行过滤接收并响应的组件

广播类型

广播注册

静态注册是常驻型广播,就是说当应用程序被关闭后,如果有对应的广播发送过来,程序还是会被系统调用自动执行。

动态注册是非常驻型广播,它跟随Activity的生命周期需要在生命周期结束的时候解除注册

生命周期

广播的生命周期从调用开始onReceiver执行完毕结束。

需要注意的是,一般广播的生命周期都极短。所以,一般不进行耗时长的工作,如果有耗时长的工作,应当通过Intent传递给Service进行处理。

如果是在代码中动态注册的广播,如:在Activity注册,那么在Activity的onDestory中需要使用unregisterReceiver注销广播。

实现原理

在Android中,广播的出现是为了组件间的通信。其实在Android中,进程间通信有Binder,而同进程的通信方式就更多了,之所以使用广播,发送者与接受者都不需要知道对方的存在,这样带来的好处便是,系统的各个组件可以松耦合地组织在一起,这样系统就具有高度的可扩展性,容易与其它系统进行集成。

Android中的广播使用了观察者模式:基于消息发布/订阅模式的事件驱动模型。