本地广播和普通的广播在代码上区别不大,就是多了个LocalBroadcastManager。看代码吧
1.获取一个localBroadcastManager实例
2.使用localBroadcastManager.sendBroadcast(intent)方法发送广播
3.写好广播接收器
4.注册好广播接收器的要接收的广播地址,然后使用localBroadcastManager.registerReceiver(mBroadcastReceiver,intentFilter);方法进行注册
5.记得在onDestroy()中取消注册
1.获取本地广播管理器的实例
localBroadcastManager = LocalBroadcastManager.getInstance(this);//获取实例
2.发送本地广播
localBroadcastManager.sendBroadcast(intent);
//发送本地广播
3.写好广播接收器
public class mBroadcastReceiver
extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast. makeText(context, "mBroadcastReceiver",Toast. LENGTH_LONG).show();
}
@Override
public void onReceive(Context context, Intent intent) {
Toast. makeText(context, "mBroadcastReceiver",Toast. LENGTH_LONG).show();
}
}
4.注册好广播接收器的要接收的广播地址。。。
intentFilter =
new IntentFilter();
intentFilter.addAction( "com.example.broadcasttest.LOCAL_BROADCAST");
mBroadcastReceiver = new mBroadcastReceiver();
intentFilter.addAction( "com.example.broadcasttest.LOCAL_BROADCAST");
mBroadcastReceiver = new mBroadcastReceiver();
localBroadcastManager.registerReceiver(mBroadcastReceiver,intentFilter);
5.在onDestroy()中取消注册
protected void onDestroy() {
super.onDestroy();
localBroadcastManager.unregisterReceiver( mBroadcastReceiver);
super.onDestroy();
localBroadcastManager.unregisterReceiver( mBroadcastReceiver);
}
也比较简单。本地广播有它的优势,下面来说一下
1.可以明确的知道正在发送的广播不会离开我们的程序,因此不用担心机密数据泄露问题
2.其他程序无法将广播发送到我们程序的内部,因此不需要担心会有安全漏洞的隐患
3.发送本地广播要比全局广播更加高效