【Android 学习笔记】 之 广播机制

广播


广播分类:标准广播和有序广播;
标准广播:在发出广播后所有的广播接收器都可以接受该广播;
有序广播:在广播发出后,同一时刻只能有一个广播接收器接收这条广播消息;

创建一个广播接收器并动态注册:
①首先新建一个类并继承 BroadcastReceiver,然后重写onReceiver()方法。当有广播到来时,onReceiver()方法就会得到执行,所以具体的逻辑实现就应该在onReceiver中实现。
②动态注册广播:
IntentFilter ifilter =new IntentFilter(); //首先创建一个IntentFilter实例
ifilter.addAction("xxxxx"); // 添加Action 值
MyBroad my =new MyBroad(); // 获取 BroadcastReceiver实例
registerReceiver(my,ifilter); //注册广播
③动态注册广播不要忘了要取消注册广播,unregisterReceiver();
④注意:因为在广播接收器中不允许开启线程,onReceiver()方法中不应执行耗时的操作。

发送自定义广播:
① 发送标准广播:
1.1 同样,首先创建一个广播接收器;
1.2 注册广播并指定好其 Action;
1.3 在Activity 代码中通过Intent对象,并把要发送广播的值传入,再通过sendBroadcast(Intent intent)方法发送广播;
Intent intent =new Intent(“com.top.MyBroad”);//值为自定义广播的Action值
sendBroadcast(intent);
② 发送有序广播:
同标准广播一样,只需要调用sendOrderdBroadcast(intent,null)方法即可; 第一个参数为Intent对象,第二个参数为与权限相关的字符串;
③ 如何设定广播接收器的先后顺序呢?
只需要在注册的时候设定即可;通过priority属性
android:priority="100"
调用abortBroadcast()方法表示截断这条广播,后面的广播接收器无法再接收到这条广播;

使用本地广播:
在前面的发送和接受广播全部都是属于系统全局广播,即发出的广播可以被其他任何应用程序接收,并且可以接收来自其他应用程序的广播,这里为了安全起见,使用本地广播,即广播只能在应用程序内部传递,只能接收来自本地应用程序发出的广播;需要使用到LocalBroadcastManager来管理
首先通过LocalBroadcastManager 的getInstance()方法得到它的一个实例
LocalBroadcastManager localmanager =LocalBroadcastManager.getInstance(this);
然后调用LocalBroadcastManager 的发送注册广播的方法即可;
localmanager.sendBroadcast(intent);
localmanager.registerBroadcast();

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值