一、应用场景

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

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐