「这是我参与11月更文挑战的第13天,活动详情查看:2021最后一次更文挑战」
1.定义:
广播即是一个全局监听器,属于Android
Android 广播分为两个角色:广播发送者、广播接收者 2.作用:
监听并接受应用APP发出的广播消息,并作出响应
3.应用场景:
Android不同组件间的通信(含应用内/不同应用之间)
多线程通信
与安卓系统在特殊情况下的通信
如:电话呼入时,网络可用时
4.模型:
Android中的广播使用了设计模式中的观察者模式:基于消息的发布 / 订阅事件模型
00001. 1.消息订阅者(广播接收者)
00002. 2.消息发布者(广播发布者)
00003. 3.消息中心(AMS,即Activity Manager Service) 5.静态注册: 1:新建一个类,继承BroadcastReceiver 2:在清单配置文件中动态注册
activity代码:
BroadcastReceiver:
结果有"静态"弹出:
6.动态注册
首先创建一个MyReceiver并继承BroadcastReceiver,既然要动态注册该receiver的话,就无需在AndroidManifest.xml中配置了.
代码:
MyReceiver:
MainActivity:
布局:
7. 粘性广播: sendStickyBroadcast()
字面意思是发送粘性的广播,使用这个api需要权限android.Manifest.permission.BROADCAST_STICKY,粘性广播的特点是Intent会一直保留到广播事件结束,而这种广播也没有所谓的10秒限制,10秒限制是指普通的广播如果onReceive方法执行时间太长,超过10秒的时候系统会将这个广播置为可以干掉的candidate,一旦系统资源不够的时候,就会干掉这个广播而让它不执行。