系统全局广播:本应用程序发出的广播可以被任何其他应用程序接收到,并且本应用程序也可以接收来自于任何其他应用程序的广播。
本地广播:发出的广播只能够在应用程序的内部进行传递,并且广播接收器也只能接收来自本应用程序发出的广播。

然后注册就ok了:

mLocalBroadcastManager .registerReceiver(localBroadcastReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {

            }
        } ,new IntentFilter("LOCAL_ACTION"));

不用的时候在onDestroy()里面销毁就ok了:

 @Override
    protected void onDestroy() {
        super.onDestroy();
        mLocalBroadcastManager.unregisterReceiver(localBroadcastReceiver);
    }

原文:https://blog.csdn.net/Steven_Zheng_0107/article/details/78363140
.
.
使用本地广播

LocalBroadcastManager localBroadcastManager;
IntentFilter intentFilter;
LocalReceiver localReceiver;

发送本地广播

localBroadcastManager = LocalBroadcastManager.getInstance(context);
Intent intent = new Intent("com.example.broadcasttest.LOCAL_BROADCAST");
localBroadcastManager.sendBroadcast(intent);

注册本地广播接收器

intentFilter = new IntentFilter();
intentFilter.addAction("com.example.broadcasttest.LOCAL_BROADCAST");
localReceiver = new LocalReceiver();
localBroadcastManager.registerReceiver(localReceiver, intentFilter);
// 

注销本地广播接收器

localBroadcastManager.unregisterReceiver(localReceiver);

注意:本地广播是无法通过静态注册的方式来接收的。
理解:静态注册主要就是为了让程序在未启动的情况下也能收到广播,而发送本地广播时,程序肯定是已经启动了,因此也完全不需要使用静态注册的功能。
使用本地广播的优势

  1. 可以明确地知道正在发送的广播不会离开本程序,因此不需要担心机密数据泄漏的问题。
  2. 其他程序无法将广播发送到本程序的内部,因此不需要担心会有安全漏洞的隐患。
  3. 发送本地广播比起发送系统全局广播将会更加高效。

    作者:lj2012sy
    来源:CSDN
    原文:https://blog.csdn.net/lj2012sy/article/details/51688985
    版权声明:本文为博主原创文章,转载请附上博文链接!

发表评论

邮箱地址不会被公开。 必填项已用*标注