写一个Andriod studio 自定义广播的发送和接收代码
时间: 2024-03-20 09:39:11 浏览: 55
好的,下面是一个 Android Studio 中自定义广播的发送和接收代码示例:
首先是发送广播的代码:
```java
Intent intent = new Intent("com.example.myapp.MY_CUSTOM_ACTION");
intent.putExtra("data", "Hello World!");
sendBroadcast(intent);
```
在这个例子中,我们使用了 `Intent` 类来创建一个广播,将 action 设置为 `"com.example.myapp.MY_CUSTOM_ACTION"`,并且使用 `putExtra()` 方法将数据添加到广播中,最后使用 `sendBroadcast()` 方法发送广播。
接下来是接收广播的代码:
```java
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("com.example.myapp.MY_CUSTOM_ACTION")) {
String data = intent.getStringExtra("data");
Toast.makeText(context, "Received: " + data, Toast.LENGTH_SHORT).show();
}
}
}
```
在这个例子中,我们创建了一个继承自 `BroadcastReceiver` 的类 `MyBroadcastReceiver`,并且重写了 `onReceive()` 方法。在方法中,我们首先检查广播的 action 是否等于 `"com.example.myapp.MY_CUSTOM_ACTION"`,如果是,就从广播中获取数据,并且使用 `Toast` 显示数据。
最后,我们需要在 `AndroidManifest.xml` 文件中注册广播接收器:
```xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp">
<application ...>
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="com.example.myapp.MY_CUSTOM_ACTION" />
</intent-filter>
</receiver>
</application>
</manifest>
```
在这个例子中,我们使用 `<receiver>` 标签来注册广播接收器,其中 `android:name` 属性设置为我们的接收器类名,即 `.MyBroadcastReceiver`,并且在 `<intent-filter>` 标签中设置了我们要接收的 action 为 `"com.example.myapp.MY_CUSTOM_ACTION"`。
完成以上步骤后,就可以发送和接收自定义广播了。
阅读全文