一、本地广播 :发送的广播只在程序内存发送和接收
1、使用:
它的使用与动态广播区别是需要LocalBroadcastManager的实例,如下为网络改变的本地广播
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
instance = LocalBroadcastManager.getInstance(this);
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
myLocalBroadcast = new MyLocalBroadcast();
instance.registerReceiver(myLocalBroadcast, intentFilter);
}
class MyLocalBroadcast extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context , "本地广播" , Toast.LENGTH_SHORT).show();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
instance.unregisterReceiver(myLocalBroadcast);
}
2、本地广播的优点:
可以明确的知道正在发送的广播不会离开我们的程序,不用担心机密数据泄露
其他程序无法将广播发送到我们的程序内部,不需要担心安全问题
发送本地广播比系统全局的广播效率高
二、注意事项
本地广播只能发送动态广播,不能发送静态广播