无序广播(普通广播) 和 有序广播(Ordered Broadcast)


1. 无序广播(普通广播)
Intent intent = new Intent("com.example.MY_BROADCAST");
sendBroadcast(intent);
2. 有序广播
Intent intent = new Intent("com.example.MY_ORDERED_BROADCAST");
sendOrderedBroadcast(intent, null); // 第二个参数是权限
系统会根据接收者的 priority 从高到低依次调用 onReceive()
中断广播:abortBroadcast();
修改结果:setResultExtras(Bundle);
获取前一个接收者的结果:getResultExtras(true)。
静态注册(Manifest 中声明)

<receiver
android:name=".BootReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
class BootReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
if (intent.action == Intent.ACTION_BOOT_COMPLETED) {
// 开机完成
}
}}
动态注册(代码中注册)

val receiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
// 处理广播
}}
// 注册registerReceiver(receiver, IntentFilter("MY_ACTION"))
// 解绑(必须)unregisterReceiver(receiver)
功能:接收并响应广播(系统或应用发出)。