android 四大组件—BroadcastReceiver
无序广播(普通广播) 和 有序广播(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 中声明)
<receiverandroid: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)
功能:接收并响应广播(系统或应用发出)。