安卓开发中 broadcast Receiver 接收一个广播, 具体实现的代码
时间: 2024-10-14 16:02:40 浏览: 10
在Android开发中,BroadcastReceiver是一个用于接收系统发送的"广播"(broadcasts)的组件,它允许开发者监听特定类型的事件或消息。下面是一个简单的例子,展示了如何创建一个基本的BroadcastReceiver来接收并处理自定义广播:
```java
// 首先,在AndroidManifest.xml文件中声明BroadcastReceiver
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="com.example.MY_BROADCAST_ACTION" /> <!-- 自定义广播动作 -->
</intent-filter>
</receiver>
// 然后,在MainActivity或其他地方,注册BroadcastReceiver
IntentFilter filter = new IntentFilter();
filter.addAction("com.example.MY_BROADCAST_ACTION");
BroadcastReceiver receiver = new MyBroadcastReceiver();
registerReceiver(receiver, filter);
// 接收者类 MyBroadcastReceiver
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().matches("com.example.MY_BROADCAST_ACTION")) {
// 在这里处理接收到的广播
String message = intent.getStringExtra("message"); // 如果广播携带了额外数据,可以像这样获取
Log.d("BroadcastReceiver", "Received message: " + message);
}
}
// 当不再需要接收器时,记得在不需要的地方注销
public static void unregisterReceiver() {
IntentFilter filter = ...; // 获取之前注册的过滤器
unregisterReceiver(new MyBroadcastReceiver(), filter);
}
}
```
在这个示例中,`onReceive()`方法会在接收到指定的广播时被调用。你需要根据实际需求替换`ACTION_NAME`,并在其中添加适合的业务逻辑。
阅读全文