![](https://img.haomeiwen.com/i6668050/b2240de955d1e7f4.png)
广播分为标准广播 和 有序广播
一、标准广播
![](https://img.haomeiwen.com/i6668050/0c3775349b82f2a9.png)
二、有序广播
同步执行的广播,广播发出后,会有一个广播接收器接收广播消息,当这个广播接收器中的逻辑执行完毕后广播才会继续传递。有先后顺序,优先级较高的接收器先收到广播消息并且可以截断正在传递的广播,使得后面的接收器无法收到广播消息。
![](https://img.haomeiwen.com/i6668050/ca848b12a5c68fc0.png)
三、系统广播
Android内置很多系统级别广播,如手机开机后发一条广播,电池电量发生变化发一条广播等等。
1.动态注册广播
在activity中通过代码动态注册广播,定义类extends BroadcastReceiver,重写onReceiver方法,通过registerReceiver注册广播。在onDestory方法中通过unregisterReceiver取消注册。自由控制注册和取消,具有灵活性,缺点是程序启动后才能接受广播。
![](https://img.haomeiwen.com/i6668050/1f030df2cebc7219.png)
2.静态注册
需要在androidManifest.xml文件中声明
![](https://img.haomeiwen.com/i6668050/58988c8caeba9e8a.png)
![](https://img.haomeiwen.com/i6668050/9651de9073c8035f.png)
![](https://img.haomeiwen.com/i6668050/ee21d4bec83aa60f.png)
四、自定义广播
1.发送标准广播
类继承broadcastreceiver,重写onreceiver方法,在AndroidManifest文件中声明
![](https://img.haomeiwen.com/i6668050/607c082ef2427b8a.png)
![](https://img.haomeiwen.com/i6668050/12cb9a6568652f6f.png)
发送广播:
![](https://img.haomeiwen.com/i6668050/c0a298113d68c966.png)
2.发送有序广播 (广播是一种可跨进程的通信方式)应用程序内发出广播,其他程序也可以接收到广播信息。如图:
![](https://img.haomeiwen.com/i6668050/8c1c279dfd476076.png)
![](https://img.haomeiwen.com/i6668050/dc9ff70173e868e1.png)
![](https://img.haomeiwen.com/i6668050/e2c47cfe7a7a22f0.png)
五、本地广播(出于安全性问题,只能在程序内部传递)
优势:正在发送的广播不会离开我们的程序,不必担心数据泄露。其他程序无法将广播发送到我们程序内部,不必担心安全漏洞。发送本地广播比系统全局广播更高效。
![](https://img.haomeiwen.com/i6668050/69e72d9bd273b156.png)
![](https://img.haomeiwen.com/i6668050/87bf28929f649aa0.png)
网友评论