十五、Android四大组件_BroadcastReceiver

Android四大组件_BroadcastReceiver

广播理解

1)特点和作用
广播事件处理属于系统级的事件处理;(一般事件处理属于视图级的)
一个应用可以在发生特定事件时发送Broadcast,系统中任何应用只要注册了对应的Receiver就会接收到此Broadcast
一个应用如果对某个广播感兴趣,就可以注册对应的Receiver来接收广播
广播事件机制是应用程序(进程间)之间通信的一种手段

相关API

Context
sendBroadcast(Intent intent) : 发送一般广播
sendOrderedBroadcast(Intent intent) : 发送有序广播
registerReceiver(receiver, intentFilter) : 注册广播接收器
unRegisterReceiver(receiver) : 解注册广播接收器

BroadcastReceiver
onReceive(Context context, Intent intent) : 接收到广播的回调
abortBroadcast() : 中断广播的继续传播
boolean isOrderedBroadcast() : 判断是否是有序广播

常用广播

收到短信广播 : android.provider.Telephony.SMS_RECEIVED(有序广播)
开机完成广播 : Intent.ACTION_BOOT_COMPLETED
应用被卸载广播 : Intent.ACTION_PACKAGE_REMOVED
手机锁屏 : Intent.ACTION_SCREEN_OFF
手机开屏 : Intent.ACTION_SCREEN_ON

发送广播

一般广播:context.sendBroadCast(Intent intent)
有序广播:context.sendOrderedBroadcast(Intent intent)
区别:
(1)多人接收时是否有序
一般广播:无序,都会同时执行
有序广播:有序,根据优先级和注册先后依次执行
(2)是否可以中断
一般广播:不可以中断
有序广播:可以中断,通过broadcast.abortBroadcast()方法中断后,后面的接收器不能接收此广播

注册广播接收器

1)写一个广播接收器类
广播接收器类都必须继承于BroadcastReceiver类
public class MyBroadcastReceiver extends BroadcastReceiver{
public void onReceive(Context context, Intent intent){
//处理广播
}
}

2)注册
静态注册:
方式一: 配置文件注册(静态注册)





动态注册:
方式二: 硬编码注册(动态注册)
MyBroadcastReceiver2 receiver2 = new MyBroadcastReceiver2();
IntentFilter filter = new IntentFilter(action);
registerReceiver(receiver2, filter);

区别动态注册和静态注册

(1)注册方式
静态注册:配置文件
动态注册:Java代码
(2)注册时间
静态注册:应用安装成功/手机开机完成,注册时不会创建对象接收到广播才创建
动态注册:执行registerReceiver(receiver,intentFilter),注册就创建对象
(3)生命结束时间
静态注册:应用卸载,对象执行onReceive()后就回收了
动态注册:执行unregisterReceiver()(Activity退出必须解注册),解注册后对象被回收
(4)应用情景
静态注册:需要监听的时间为应用的整个生命周期
动态注册:只服务于某个Activity/Service

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值