sendBroadcast 无法接收
时间: 2024-01-21 15:18:18 浏览: 22
`sendBroadcast()` 方法是用于发送广播的,而接收广播需要使用 `BroadcastReceiver`。你需要在代码中注册 `BroadcastReceiver` 并实现 `onReceive()` 方法来接收广播。具体的步骤如下:
1. 创建一个继承自 `BroadcastReceiver` 的类,实现 `onReceive()` 方法,在方法中处理接收到的广播数据。
2. 在 `AndroidManifest.xml` 文件中注册该类,使用 `<receiver>` 元素来指定类名和要接收的广播类型。
```xml
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="com.example.MY_ACTION" />
</intent-filter>
</receiver>
```
3. 在需要发送广播的地方调用 `sendBroadcast()` 方法,并传入一个 `Intent` 对象,该对象中需要指定要发送的广播类型。
```java
Intent intent = new Intent("com.example.MY_ACTION");
sendBroadcast(intent);
```
注意:如果要接收系统级别的广播,如电量变化、网络状态变化等广播,需要在代码中动态注册 `BroadcastReceiver`,而不能在 `AndroidManifest.xml` 文件中注册。并且需要在 `onResume()` 方法中注册,在 `onPause()` 方法中取消注册。