【Android 开发】使用LocalBroadcastManager,让你的广播事件更安全

【Android 开发笔记】使用LocalBroadcastManager,让你的广播事件更安全

场景:
    应用1注册了intent的action为“com.aaa”的广播接受者,
    在应用2,发送了intent的action为“com.aaa”的广播,
    结果应用1注册的广播接收者的onReceive()调用了。
问题:
    这样就会导致当别的应用的广播的action跟自己应用的action相同的时候,自己应用出现混乱。

解决:
    使用android-support-v4包的 LocalBroadcastManager类来保证广播只接收本应用的广播。

注册的时候
// 注册广播
private void regiterBoradcastReceiver() {
IntentFilter myIntentFilter = new IntentFilter();
myIntentFilter.addAction(Constants.ACTION_REFRESH_SHOP_MSG);
// 注册广播
LocalBroadcastManager.getInstance(mContext).registerReceiver(mBroadcastReceiver, myIntentFilter);
}
反注册:
public void onDestroy() {
    super.onDestroy();
if (mBroadcastReceiver != null) {
LocalBroadcastManager.getInstance(mContext).unregisterReceiver(mBroadcastReceiver);
mBroadcastReceiver = null;
}
}
发送广播:
LocalBroadcastManager.getInstance(app).sendBroadcast(new Intent(Constants.ACTION_REFRESH_SHOP_MSG));






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

leafseelight

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值