一、应用场景
1、BroadcastReceiver用于应用之间的传递消息;
2、而LocalBroadcastManager用于应用内部传递消息,比broadcastReceiver更加高效。
二、安全
1、BroadcastReceiver使用的Content API,所以本质上它是跨应用的,所以在使用它时必须要考虑到不要被别的应用滥用;
2、LocalBroadcastManager不需要考虑安全问题,因为它只在应用内部有效。
三、用法
LocalBroadcastManager 的使用跟一般 BroadcastReceiver 差别不大。
(1) 自定义 BroadcastReceiver 子类
public class LocalBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//这里处理接收的信息
}
}
(2) 注册接收器
LocalBroadcastReceiver localReceiver = new LocalBroadcastReceiver();
LocalBroadcastManager localBroadcastManager= LocalBroadcastManager.getInstance(Context);
IntentFilter intentFilter =newIntentFilter();
intentFilter.addAction("这里放一个action");
localBroadcastManager.registerReceiver(localReceiver, intentFilter);
(3) 发送广播
LocalBroadcastManager.getInstance(Context).sendBroadcast(new Intent("这里放一个action"));
(4) 取消注册
LocalBroadcastManager.getInstance(Context).unregisterReceiver(localReceiver);
网友评论