接收广播如下
public class MyBroadcastReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context,Intent intent){
String msg = intent.getExtras().getString("msg");
.....
}
}
<receiver android:name=".MyBroadcastReceiver">
<Intent-filter>
<action android:name="com.itcast.BroadcastReceiverTest"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</receiver>
发送广播
Intent intent = new Intent();
intent.setAction("com.itcast.BroadcastReceiverTest");
intent.putExtra("msg");
sendBroadcast(intent);
//动态的创建广播过滤器
MyBroadcastReceiver receiver = new MyBroadcastReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction("com.itcast.MyBroadcastReceiverTest");
registerReceiver(receiver,filter);
动态注册和静态注册的区别
动态注册的广播为常驻型广播,那么他就跟随Activity的生命周期,所有Activity结束前,我么需要调用unregisterReceiver方法移出它
静态注册的广播为常驻型广播,也就是说如果应用程序关闭,有相应事件触发,程序还是被系统自动调用