Androd 自定义类如何才能使用sendBroadcast接口进行广播
时间: 2023-06-16 13:08:14 浏览: 121
要使自定义类使用 `sendBroadcast()` 接口进行广播,需要满足以下几个条件:
1. 自定义类必须继承 `android.content.ContextWrapper` 类,以获取上下文对象。
2. 在自定义类中创建一个 `Intent` 对象,用于指定要发送的广播。
3. 调用 `sendBroadcast()` 方法,并将 `Intent` 对象作为参数传递给该方法。
下面是一个示例代码,演示如何在自定义类中使用 `sendBroadcast()` 接口进行广播:
```java
public class MyBroadcastSender extends ContextWrapper {
public MyBroadcastSender(Context base) {
super(base);
}
public void sendMyBroadcast() {
Intent intent = new Intent();
intent.setAction("com.example.MY_BROADCAST");
intent.putExtra("message", "Hello, world!");
sendBroadcast(intent);
}
}
```
在上面的示例中,`MyBroadcastSender` 类继承了 `ContextWrapper` 类,用于获取上下文对象。`sendMyBroadcast()` 方法创建了一个 `Intent` 对象,并将其用于发送广播。这里指定了广播的动作为 `com.example.MY_BROADCAST`,并附加了一个字符串消息作为额外的数据。
注意,为了使广播能够正常接收,需要在 AndroidManifest.xml 文件中注册广播接收器,并指定与上面示例中相同的广播动作。例如:
```xml
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="com.example.MY_BROADCAST" />
</intent-filter>
</receiver>
```
在上面的示例中,`MyBroadcastReceiver` 是一个自定义的广播接收器,用于接收 `com.example.MY_BROADCAST` 动作的广播。在 `<intent-filter>` 标签中指定了要接收的广播动作。
阅读全文