单独创建一个Java文件,写一个类,继承BroadcastReceiver,并且在清单文件中注册该接收器。
AndroidManifest写法
<receiver android:name=".device.display.daydream.MyDaydreamBroadcastReceiver" android:exported="true" > <intent-filter> <action android:name="helo.intent.finish.daydream" /> </intent-filter> </receiver>BroadcastReceiver写法
public class MyDaydreamBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { //do something } }在Activity或者service中创建内部类,继承BroadcastReceiver,不用在清单文件中注册。
写法如下
public class DaydreamBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { //do something } }这两种广播接收器的区别是:
静态注册的广播可以在广播发送后随时收到,不要求当前应用是否已经启动。
动态注册的广播不会在广播发送后随时收到,要求当前应用已经启动,并且完成注册过程。
