android 广播 代码
时间: 2023-10-04 19:04:50 浏览: 39
下面是一个简单的示例,演示如何使用广播接收器接收系统广播和自定义广播:
```java
// 定义一个广播接收器
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_POWER_CONNECTED)) {
// 处理电源连接的广播
Toast.makeText(context, "Power Connected", Toast.LENGTH_SHORT).show();
} else if (action.equals(Intent.ACTION_POWER_DISCONNECTED)) {
// 处理电源断开的广播
Toast.makeText(context, "Power Disconnected", Toast.LENGTH_SHORT).show();
} else if (action.equals("com.example.MY_ACTION")) {
// 处理自定义广播
String data = intent.getStringExtra("data");
Toast.makeText(context, "Received Custom Broadcast: " + data, Toast.LENGTH_SHORT).show();
}
}
}
// 注册广播接收器
MyBroadcastReceiver receiver = new MyBroadcastReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_POWER_CONNECTED);
filter.addAction(Intent.ACTION_POWER_DISCONNECTED);
filter.addAction("com.example.MY_ACTION");
registerReceiver(receiver, filter);
// 发送自定义广播
Intent intent = new Intent("com.example.MY_ACTION");
intent.putExtra("data", "Hello World");
sendBroadcast(intent);
// 注销广播接收器
unregisterReceiver(receiver);
```
在上述示例中,我们定义了一个继承自BroadcastReceiver的广播接收器MyBroadcastReceiver,并在其中实现了onReceive()方法。在onReceive()方法中,我们判断收到的广播类型,并对其进行相应的处理。我们还在代码中注册了MyBroadcastReceiver接收器,并指定了要接收的广播类型。最后,我们使用sendBroadcast()方法发送了一个自定义广播,并在其中携带了一些数据。最后,我们还注销了广播接收器,以避免内存泄漏。