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);
    }

 

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 中,广播可以使用静态注册动态注册动态注册是指在代码中通过 Java 代码动态注册广播接收器。下面是一个简单的示例代码,演示如何在 Android 应用程序中动态注册广播接收器: 1.创建一个 BroadcastReceiver 对象 ```java public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // 处理广播事件 } } ``` 2.在 Activity 中动态注册 BroadcastReceiver ```java public class MainActivity extends AppCompatActivity { private MyBroadcastReceiver receiver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 创建 BroadcastReceiver 对象 receiver = new MyBroadcastReceiver(); // 创建 IntentFilter 对象 IntentFilter filter = new IntentFilter(); filter.addAction("android.intent.action.BOOT_COMPLETED"); // 监听系统启动完成广播事件 // 注册广播接收器 registerReceiver(receiver, filter); } @Override protected void onDestroy() { super.onDestroy(); // 注销广播接收器 unregisterReceiver(receiver); } } ``` 在这个示例中,我们创建了一个 MyBroadcastReceiver 对象,并在 Activity 的 onCreate() 方法中动态注册了这个 BroadcastReceiver。我们还创建了一个 IntentFilter 对象,并添加了一个监听系统启动完成广播事件的 action。最后,我们使用 registerReceiver() 方法来注册 BroadcastReceiver。 当 Activity 销毁时,我们使用 unregisterReceiver() 方法来注销 BroadcastReceiver。这是非常重要的,因为如果不注销 BroadcastReceiver,会导致内存泄漏问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值