Android四大组件——BroadcastReceiver(整理)

一、注册BroadcastReceiver

1.1 动态注册

       创建一个广播接收器继承自BroadcastReceiver,重写onReceive(context, intent)。定义intent-filter筛选需要监听的广播类型,并在活动中注册,通过调用registerReceiver(BroadcastReceiver, intent-filter) 将receiver与intent-filter绑定,不用时需要取消注册。

1.2 静态注册

       可以在不启动应用程序时启用,exported表示是否允许BroadcastReceiver接收本程序之外的广播,enabled表示是否启用这个BroadcastReceiver。BroadcastReceiver内不允许开启线程,不能进行耗时操作

二、发送Broadcast

2.1 自定义广播

  • 发送标准广播:所有满足条件的BroadcastReceiver同时接收。
Intent intent=new Intent(“com.example.broadcasttest.MY_BROADCAST”);
sendBroadcast(intent);
  • 发送有序广播:依次接收Broadcast,可以截断。
    sendOrderedBroadcast(intent, String receiverPermission)
    ——其中,receiverPermission表示只有具备某一权限的receiver才能接收到广播。
    可以在注册时在intent-filter标签中通过配置 android:priority 设置优先级。可以调用abortBroadcast() 截断广播

2.2 本地广播

       需要通过LocalBoradcastManager实例进行广播的发送和注册。

  • 获取LocalBoradcastManager实例:LocalBoradcastManager.getInstance()
  • 注册:localBoradcastManager.registerReceiver(receiver, intentfilter),只能动态注册,只能在应用程序启动后BroadcastReceiver才能开始监听。
  • 发送:localBoradcastManager.sendBroadcast(intent)

三、权限设置

3.1 发送端设置权限

  • 发送端:在sendBroadcast()时通过设置receiverpermission来控制只有具备权限的应用才能去接收此广播;
  • 接收端:需要声明并引用该权限
    • 声明方式:在androidManifest.xml文件中通过<permission android:name=" "/>
    • 引用方式:<uses-permission android:name=" "/>

3.2 接收端设置权限

  • 接收端:在BroadcastReceiver注册时通过设置android:permission=" " 属性来控制只有具备该权限的应用才能访问该组件。
  • 发送端:需要声明并引用该权限。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值