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