Android - LocalBroadcast

Android里面的广播按类型分为两种:标准广播和有序广播。从应用软件安全角度又分为:系统广播和本地广播。 下文主要介绍本地广播。
本地广播有以下3个优点:

  • 发送的广播不会离开我们的程序,机密数据不会泄露。
  • 其他的程序无法将广播发送到我们程序的内部,因此无安全隐患。
  • 发送本地广播比发送系统全局广播更高效。

01 LocalBroadcastManager

使用系统提供的LocalBroadcastManager这个类来发送广播、注册和注销广播接收器。

  • 01 发送本地广播
Intent intent = new Intent();
intent.setAction(Constants.ACTION_ACCOUNT_LOGIN_SUCCESS);
//ContextHelper.getContext().sendBroadcast(intent);
//改为发送本地广播比发送系统全局广播更加安全和高效。
LocalBroadcastManager.getInstance(ContextHelper.getContext()).sendBroadcast(intent);
  • 02 注册本地广播接收器
IntentFilter filter = new IntentFilter();
filter.addAction(Constants.ACTION_ACCOUNT_LOGIN_SUCCESS);
if (mReceiver == null) {
    mReceiver = new LoginReceiver();
    //getActivity().registerReceiver(mReceiver, filter);
    // 注册本地广播接收器
    LocalBroadcastManager.getInstance(getContext()).registerReceiver(mReceiver, filter);
}
  • 03 注销本地广播接收器
@Override
public void onDestroy() {
    if (mReceiver != null) {
        //getActivity().unregisterReceiver(mReceiver);
        // 注销本地广播接收器
        LocalBroadcastManager.getInstance(getContext()).unregisterReceiver(mReceiver);
    }
    super.onDestroy();
}
  • 04 LoginReceiver
private class LoginReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        // do something
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 参考:Android总结篇系列:Android广播机制Android广播机制 一. 广播 1. 广播是什么? 广播...
    NickelFox阅读 4,505评论 0 3
  • 目录 一.概述 二.注册广播 三.发送广播 四.处理广播 五.广播的优先级 一、概述 广播(Broadcast)机...
    MryU93阅读 9,851评论 0 6
  • 很多人对减肥的定义是:挨饿、大量运动、吃药……..,但我认为减肥是一种健康的生活方式。 我有过三次减肥...
    王玲玲Casey阅读 6,213评论 8 24
  • 1、ajax简介:ajax=asynchrinous javascript and xml(异步js和xml)aj...
    200813阅读 1,651评论 0 0
  • 下午看《我不是明星》,一不小心看了N集,直接打不住了,如果被砖头知道,他可能会严肃地丢给我几个字“你连这点自制力都...
    麦子飞呀飞阅读 2,773评论 0 0