APP开发实战75-Local Broadcast:App应用内广播

本文探讨了Android中的Local Broadcast,一种限于应用内部的广播通信方式,以提高安全性和效率。通过LocalBroadcastManager,开发者可以方便地注册、取消注册广播接收器,并发送广播,避免了全局广播带来的潜在风险。Local Broadcast的优势在于它只在应用程序内部传播,增加了数据的安全性,并且在性能上优于全局广播。
摘要由CSDN通过智能技术生成

(转自; http://www.cnblogs.com/lwbqqyumidi/p/4168017.html)

18.3.5Local Broadcast:App应用内广播

(此处的App应用以App应用进程为界)

Android中的广播可以跨进程甚至跨App直接通信,且注册是exported,对于有intent-filter的情况下默认值是true,由此将可能出现安全隐患如下:

A其他App可能会针对性的发出与当前App intent-filter相匹配的广播,由此导致当前App不断接收到广播并处理;

B其他App可以注册与当前App一致的intent-filter用于接收广播,获取广播具体信息。

最常见的增加安全性的方案是:

A对于同一App内部发送和接收广播,将exported属性人为设置成false,使得非本App内部发出的此广播不被接收;

B在广播发送和接收时,都增加上相应的permission,用于权限验证;

C发送广播时,指定特定广播接收器所在的包名,具体是通过intent.setPackage(packageName)指定在,这样此广播将只会发送到此包中的App内与之相匹配的有效广播接收器中。

App应用内广播可以理解成一种局部广播的形式,广播的发送者和接收者都同属于一个App。

相比于全局广播,App应用内广播优势体现在:

1.安全性更高;

2.更加高效。

为此,Android v4兼容包中给出了封装好的LocalBroadcastManager类,用于统一处理App应用内的广播问题,使用方式上与通常的全局广播几乎相同,只是注册/取消注册广播接收器和发送广播时将主调context变成了LocalBroadcastManager的单一实例。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值