Android两种BroadcastReceiver:静态和动态。
第一:静态广播的建立。
(1)在AndroidManifest.xml中声明广播
(2)继承广播接收,对接收到的广播进行处理。
第二:动态广播。
(1)进入Activity时注册动态广播
(2)离开窗口时注销动态广播
实例:
第一:静态广播;
(1)在AndroidManifest.xml中声明静态广播;设置广播接收的动作名
<receiver android:name="广播所在的包名.TestBroadcastReceiver">
<intent-filter>
<action android:name="broadcast_static_action"/>
</intent-filter>
</receiver>
(2)继承广播接收,对接收到的广播进行处理public class TestBroadcastReceiver extends BroadcastReceiver{
private final static String TAG = TestBroadcastReceiver.class.getSimpleName();
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
String staticAction = intent.getAction();
if(staticAction.equals("broadcast_static_action")){
Log.i(TAG,"staticAction");
}
}
}
第二:动态广播
(1)建立动态广播类:
class TestDynamicBroadcastReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if("broadcast_dynamic_action".equals(intent.getAction())){
Log.i(TAG,"intent.getAction()="+intent.getAction());
}
Log.i(TAG,"dynamic broadcastreceiver");
}
}
(2)建立动态广播对象
BroadcastReceiver receiver = new TestDynamicBroadcastReceiver();
(3)注册动态广播
public void registerBroadcast(){
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("broadcast_dynamic_action");
registerReceiver(receiver, intentFilter);
}
(4)注销动态广播类
public void unRegisterBroadcast(){
unregisterReceiver(receiver);
}