Android程序员面试笔试宝典
上QQ阅读APP看书,第一时间看更新

1.3.1 动态注册与静态注册

广播接收器的注册有动态与静态两种方式:

1)静态注册:直接用AndroidStudio快捷方式创建BroadcastReceiver,自动会注册,然后就可以在创建的类中的onReceiver()方法中实现要处理的逻辑;

2)动态注册:在活动中创建一个内部类(该类就是自定义广播接收器),这个类继承BroadcastReceiver,然后在该类中重写onReceiver()方法。最后在活动中调用registerReceiver(),把刚刚定义好的内部类对象作为参数传进该方法,这样就实现了注册,而调用unregisterReceiver()则进行注销。动态注册比较灵活,可以控制注册与注销,但是要依赖程序启动后才能接收到广播。

这里补充一点,registerReceiver()方法是传两个参数进去,第一个参数是广播接收器对象,也就是开发者创建的自定义接收器。而第二个参数则是IntentFilter对象,通过使用IntentFilter对象来添加相应action,从而让广播接收器知道自己监听的是什么广播,如果匹配则进行接收。而unregisterReceiver()方法只有一个参数,就是广播接收器对象。