BroadcastReceiver

<1>广播有几种形式?什么特点?

普通广播:一种完全异步执行的广播,在广播发出之后,所有的广播接收器几乎都会在同一时刻接收到这条广播信息,因此它们接收的先后是随机的。

有序广播:一种同步执行的广播,在广播发出之后,同一时刻只会有一个广播接收器能收到这条广播消息,当这个广播接收器中的逻辑执行完成后,广播才会继续传递,所以此时的广播接收器是有先后顺序的,且优先级高的广播接收器会先收到广播消息。有序广播可以被接收器截断使得后面的接收器无法收到它。

本地广播:发出的广播只能够在应用程序的内部进行传递,并且广播接收器也只能接收本应用程序发出的广播

粘性广播:这种广播会一直滞留,当有匹配该广播的接收器被注册后,该接收器就会收到此条广播。

<2>广播的两种注册形式?区别在哪?

1.静态注册

Androidmanifest.xml中进行注册,静态注册的接收器即便程序未启动也能接收到广播

<receive android:name=".BroadCastReceiverDemo"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED"> </intent-filter> </receiver>

2.动态注册

代码中进行注册,当前代码页面退出时就不会接收广播,需要解绑,否则会内存泄漏。动态注册的接收器必须要在程序启动之后才能接收到广播

IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED"); BroadCastReceiverDemo receiver = new BroadCastReceiver(); registerReceiver(receiver, filter);

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值