android本地广播的使用

最近在浏览Android面试题的时候发现了一道题:本地广播和全局广播有什么区别?当时我的第一想法是全局广播是在AndroidManifest中注册的广播,本地广播是在代码中注册的广播。后来一想在代码中注册的广播叫动态注册广播,AndroidManifest里面注册的广播叫静态广播,于是乎感觉网上搜了一波(说实话之前没用过本地广播)。
一个叫LocalBroadcastManager的名词出现在我的面前,使用起来还比较简单方便,
先造一个LocalBroadcastManager实例出来:

LocalBroadcastManager mLocalBroadcastManager = LocalBroadcastManager.getInstance(this);

然后注册就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);
    }

接着聊一下刚刚的面试题(本地广播和全局广播的区别):

  1. 本地广播更加安全,由于本地广播只作用于在自己的应用内,所以不用担心发送广播时数据被其他应用所截取接收到,从而保护了数据不会泄漏。
  2. 本地广播只能接收自己应用类的广播信息,所以外部应用的广播也无法发送信息来干扰和破坏我们的应用。
  3. 本地广播更加高效,由于只作用自己应用不需要跨进程通信,所以更加高效。全局广播要进行跨进程通信从而用的Binder以及底层的操作,所以效率要慢一些。

    总而言之:以后能用的本地广播的有限使用本地广播。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值