静态注册是在清单(AndroidManifest.xml)文件中配置的
2.动态注册
动态注册需要在代码中动态的指定广播名字并注册
注意,registerReceiver是android.content.ContextWrapper类中的方法,Activity 和Service都继承了ContextWrapper,所以可以直接调用。 在实际应用中,我们在 Activity或Service中注册了一个BroadcastReceiver,当这个Activity或Service被销毁时 如果没有解除注册,系统会报一个异常,提示我们是否忘记解除注册了。所以,记得在 特定的地方执行解除注册操作。
通过上面两步其实已经完成了一个简单功能的广播接收者,已经可以具有接受广播功能了。在onReceive方法里面就可以做自己想要的处理。
但是上面的BroadcastReceiver注册时的action动作意图值是自己定义的字符串,需要自己发送对应意图的广播才能让上面的广播接收到消息,如果是上面使用系统定义好的动作意图action,那么,就可以接收到系统发过来的广播信息,比如手机接收到短信,手机底层是会发送一条广播,查看手机系统内是否有符合条件的广播接收者,如果有就会向它发送信息。。。
静态注册的广播的程序运行一次后,以后能一直保持广播接收的状态,只要有对应的广播就能接收它的广播信息。而动态注册的广播需要程序在运行中才能接收广播。
(三)发送广播
普通广播对于多个接收者来说是完全异步的,通常每个接收者都无需等待即可以接收到广播,接收者相互之间不会有影响。对于这种广播,接收者无法终止广播,即无法阻止其他接收者的 接收动作。
完整代码附上