Android 动态注册广播

Android动态注册广播分为四个步骤

1、动态注册广播

2、发送广播

3、接收广播

4、销毁广播

 

1、动态注册广播

动态注册广播一般在 onResume() 方法中,写法如下

    //注册动态广播,在 onResume()注册,在 onPause()中注销
    private LocatiopnBroadcast locatiopnBroadcast;
    public static final String BROADCAST_ACTION_DISC = "包名.LocatiopnBroadcast";
    @Override
    protected void onResume() {
        super.onResume();
        // 1. 实例化BroadcastReceiver子类 &  IntentFilter
        locatiopnBroadcast = new LocatiopnBroadcast();
        IntentFilter intentFilter = new IntentFilter();
        // 2. 设置接收广播的类型
        intentFilter.addAction(BROADCAST_ACTION_DISC);// 只有持有相同的action的接受者才能接收此广播
        // 3. 动态注册:调用Context的registerReceiver()方法
        registerReceiver(locatiopnBroadcast, intentFilter);
    }

 

2、发送广播

    Intent intent = new Intent();
    //BROADCAST_ACTION_DISC,用于标识接收
    intent.setAction(BROADCAST_ACTION_DISC);
    //发送广播
    sendBroadcast(intent);

3、接收广播

    //广播接收者
    public class LocatiopnBroadcast extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            //收到广播后的操作
        }
    }

4、销毁广播

需要在 onPause() 方法中销毁广播,否则有内存泄露的危险

    @Override
    protected void onPause() {
        super.onPause();
        //销毁在onResume()方法中的广播
        unregisterReceiver(locatiopnBroadcast);
    }

 

你可能感兴趣的:(Android)