Android中本地广播的使用

本文详细介绍如何使用Android本地广播实现APP内部的数据共享发布功能,包括发送广播、注册接收广播及通过Intent传值等操作,无需依赖第三方库。

之前我在博客中讲述过EventBus的使用方法。这个三方库为我们提供了一种订阅发布的模式,可以实现本地APP内部的数据共享发布的功能。今天介绍一种不依赖第三方实现该功能的方法,那就是Android为我们提供的本地广播,废话补多少,直接上代码步骤。

首先你要发送一个广播

/**
 * 发送广播
 */
private void sendLoginBroadcast(){
    LocalBroadcastManager.getInstance(this).sendBroadcast(new Intent(PatrolContract.UPDATE_RW_DB));
}

这里的PatrolContract.UPDATE_RW_DB是一个常量,用于在茫茫广播中找到那个你想要的广播。我是这样定义的。

public static final String UPDATE_RW_DB = "com.longway.action.UPDATE_RW_DB";

这样发送我们就写好了,接着就要写接收。和EventBus一样,接收的类中我们先要注册广播

 /**
  * 注册广播
  */
private void registerUpdateBroadcast() {
    IntentFilter filter = new IntentFilter(PatrolContract.UPDATE_RW_DB);
    LocalBroadcastManager.getInstance(this).registerReceiver(updateRwBroadcastReceiver, filter);
}

注册广播一般在onCreate中调用,onDestroy中则调用解除广播的代码,代码如下

/**
 * 取消广播
 */
private void unRegisterUpdateBroadcast() {
      LocalBroadcastManager.getInstance(this).unregisterReceiver(updateRwBroadcastReceiver);
}

接着就是接收器了

private class UpdateRwBroadcastReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            //这里是接收到广播后我们要做的工作
            
        }
}

我们还可以通过Intent进行传值的操作,是不是很简单。至少我们可以不依赖三方库操作了。

ps:如果您用的是androidx的环境,如果您这里想要使用本地广播,那么需要添加如下依赖

implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'

这里感谢码友“空指针的皮皮虾“补充

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值