在Android中,广播可以分为以下几类:
1. 标准广播(Normal Broadcast):这种广播是一种完全异步的广播,不保证所有接收者会同时接收到广播。即使没有任何接收者,发送者也不会收到任何错误信息。这种广播的效率很高,但不适合需要保证所有接收者均接收到广播的情况。
2. 有序广播(Ordered Broadcast):这种广播是一种同步的广播,保证所有接收者都会按照一定的顺序接收到广播。每个接收者在接收到广播后,可以选择继续传递广播或者中断广播。这种广播适合需要保证所有接收者均接收到广播的情况。
3. 粘性广播(Sticky Broadcast):这种广播是一种可以被持久化的广播,即发送者可以将广播发送给尚未注册的接收者,当这些接收者注册时,它们可以立即接收到最近一次的广播。这种广播适合需要在注册前就接收到广播的情况。
4. 本地广播(Local Broadcast):这种广播是一种只能在应用程序内部传播的广播,不会被系统其它应用程序接收到。这种广播比其它广播更加安全和高效,适合应用程序内部的通信和数据传递。
5. 系统广播(System Broadcast):这种广播是由系统发送的广播,用于通知应用程序系统事件的发生,如屏幕开关、电量变化、网络状态变化等。应用程序可以通过注册系统广播接收器来接收这些广播,以便作出相应的处理。
6. 自定义广播(Custom Broadcast):这种广播是应用程序定义的广播,用于自定义事件的传递和处理。应用程序可以通过发送自定义广播来触发特定的事件,通过注册自定义广播接收器来处理这些事件。自定义广播可以实现应用程序内部的各种功能和交互。
7. App Standby Buckets 广播:这种广播是从 Android 9 开始引入的一种新机制,用于帮助应用程序更好地管理其后台运行行为。当应用程序进入不同的待机桶(Standby Bucket)时,系统会发送一个 App Standby Buckets 广播,通知应用程序当前的待机桶级别。应用程序可以根据待机桶级别来调整自己的后台运行行为,以达到更好的功耗优化和性能优化。这种广播只能由系统发送,应用程序不能发送。
8. App Ops 广播:这种广播是 Android 系统中的一种权限管理机制,用于允许或拒绝应用程序对系统的各种操作。当应用程序请求某个权限时,系统会发送一个 App Ops 广播,通知应用程序对该权限的授权情况。应用程序可以根据授权情况来决定是否执行相应的操作。这种广播只能由系统发送,应用程序不能发送。