anroid 发送接收广播
时间: 2023-08-28 12:03:45 浏览: 37
在 Android 中,广播分为两种类型:系统广播和自定义广播。系统广播由 Android 系统发送,而自定义广播则由应用程序发送。发送广播的应用程序称为广播发送器,而接收广播的应用程序称为广播接收器。
下面是一个简单的示例代码,演示如何在 Android 应用程序中发送和接收自定义广播:
发送广播:
```java
Intent intent = new Intent();
intent.setAction("com.example.MY_CUSTOM_ACTION");
intent.putExtra("message", "Hello world!");
sendBroadcast(intent);
```
接收广播:
```java
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("com.example.MY_CUSTOM_ACTION")) {
String message = intent.getStringExtra("message");
Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
}
}
}
```
可以在 AndroidManifest.xml 文件中注册广播接收器,以便在应用程序启动时自动注册:
```xml
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="com.example.MY_CUSTOM_ACTION" />
</intent-filter>
</receiver>
```
注意:在 Android 8.0(API 级别 26)及更高版本中,未经明确授权的广播接收器不再接收隐式广播。因此,需要使用显式 Intent 启动广播接收器,或者在运行时请求授权。