API中的介绍:
You can either dynamically register an instance of this class with Context.registerReceiver() or statically publish an implementation through the tag in your AndroidManifest.xml.
翻译过来就是注册一个BroadcastReceiver类的实例,有两种方式:
1、 动态注册 使用Context.registerReceiver() 方法在MainActivity 中注册
receiver = new SpecialReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.SCREEN_OFF");
filter.addAction("android.intent.action.SCREEN_ON");
this.registerReceiver(receiver, filter);
一般来说,操作特别频繁的广播使接受者成为:特殊的广播接受者,此时必须使用动态注册,比如锁屏、开屏,操作特别频繁。采用动态注册时,receiver的生命周期和当前Activity保持一致,当前Activity销毁时,receiver注销。
注意事项:要在MainActivity中的onDestroy()方法中 注销当前receiver;
@Override
protected void onDestroy() {
unregisterReceiver(receiver);