Android广播机制

QQ截图20181210091750.png

广播分为标准广播 和 有序广播
一、标准广播

完全异步执行的广播,当发出广播后,广播接收器几乎会在同一时刻接收到广播消息,所以没有先后顺序可言,效率比较高,无法被截断。
1.png

二、有序广播
同步执行的广播,广播发出后,会有一个广播接收器接收广播消息,当这个广播接收器中的逻辑执行完毕后广播才会继续传递。有先后顺序,优先级较高的接收器先收到广播消息并且可以截断正在传递的广播,使得后面的接收器无法收到广播消息。
2.png

三、系统广播
Android内置很多系统级别广播,如手机开机后发一条广播,电池电量发生变化发一条广播等等。
1.动态注册广播
在activity中通过代码动态注册广播,定义类extends BroadcastReceiver,重写onReceiver方法,通过registerReceiver注册广播。在onDestory方法中通过unregisterReceiver取消注册。自由控制注册和取消,具有灵活性,缺点是程序启动后才能接受广播。


3.png

2.静态注册
需要在androidManifest.xml文件中声明
4.png

6.png

7.png

四、自定义广播
1.发送标准广播

类继承broadcastreceiver,重写onreceiver方法,在AndroidManifest文件中声明


8.png

10.png

发送广播:
11.png

2.发送有序广播 (广播是一种可跨进程的通信方式)应用程序内发出广播,其他程序也可以接收到广播信息。如图:
14.png

12.png

13.png

五、本地广播(出于安全性问题,只能在程序内部传递)
优势:正在发送的广播不会离开我们的程序,不必担心数据泄露。其他程序无法将广播发送到我们程序内部,不必担心安全漏洞。发送本地广播比系统全局广播更高效。
15.png

16.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。