2、 自定义广播: (1) 发送一个自定义广播,在intent中附加数据(putExtra方法),key为”extraKey”,value为”CustomValue” (2) 新创建一个项目,创建BroadcastReceiver子类,接收2中发出的自定义广播,并将附加的数据用log.d打印出来
时间: 2024-03-01 19:55:33 浏览: 105
自定义广播
好的,我来逐步回答你的问题:
1. 发送自定义广播,附加数据:
你可以在你的 Activity 或 Service 中使用以下代码发送自定义广播,并附加数据:
```java
Intent intent = new Intent("com.example.CUSTOM_ACTION");
intent.putExtra("extraKey", "CustomValue");
sendBroadcast(intent);
```
其中,"com.example.CUSTOM_ACTION" 是你自定义的 action,可以根据你的需要自行修改。
2. 创建 BroadcastReceiver 子类,接收自定义广播并打印数据:
在你的新项目中,可以新建一个 BroadcastReceiver 的子类,用于接收自定义广播,并将附加的数据打印出来。以下是示例代码:
```java
public class MyReceiver extends BroadcastReceiver {
private static final String TAG = "MyReceiver";
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("com.example.CUSTOM_ACTION")) {
String customValue = intent.getStringExtra("extraKey");
Log.d(TAG, "Received custom broadcast with value: " + customValue);
}
}
}
```
在这里,我们判断接收到的广播是否为我们自定义的广播,如果是,则从 intent 中取出附加的数据,并将其打印出来。
需要注意的是,在 AndroidManifest.xml 文件中,你需要注册该 BroadcastReceiver,以便系统能够正确地调用它。以下是示例代码:
```xml
<receiver android:name=".MyReceiver">
<intent-filter>
<action android:name="com.example.CUSTOM_ACTION" />
</intent-filter>
</receiver>
```
这样,当你发送自定义广播时,系统就会自动调用 MyReceiver 的 onReceive 方法,并将 intent 对象作为参数传入。在该方法中,你就可以根据你的需要处理广播了。
希望这些代码能够帮助你解决问题!
阅读全文