1.广播发送:
- 当某个事件发生时,例如 USB 设备连接,系统或应用程序会发送一个广播。这个广播是一个
Intent
对象,包含了广播的动作和数据。
2.广播接收:
- 系统会查找所有注册了与该广播动作相匹配的
BroadcastReceiver
。对于每一个匹配的接收器,系统会调用其onReceive
方法,并传入Context
和Intent
参数。
注册广播接收器
为了使广播接收器能够接收到特定的广播,需要先注册接收器,并指定它感兴趣的广播动作。这可以在代码中动态注册,也可以在 AndroidManifest.xml 中静态注册(完成一个即可)。
动态注册
通过代码动态注册接收器,通常在 Activity
或 Service
的生命周期方法中完成,如 onCreate
或 onStart
。
IntentFilter filter = new IntentFilter(UsbManager.ACTION_USB_DEVICE_ATTACHED);
registerReceiver(usbReceiver, filter);
静态注册
通过在 AndroidManifest.xml
中静态注册接收器,这样接收器在应用启动时就会自动注册。
<receiver android:name=".UsbReceiver">
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"/>
</intent-filter>
</receiver>