Android Studio Broadcast广播监听收发信息源码
时间: 2023-08-05 16:11:27 浏览: 61
以下是一个简单的 Android Studio Broadcast 广播监听收发信息的源码示例:
1. 在 AndroidManifest.xml 文件中添加以下代码,声明需要监听的广播:
```xml
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
</intent-filter>
</receiver>
```
2. 创建一个继承 BroadcastReceiver 的类 MyBroadcastReceiver,并在其 onReceive 方法中处理广播事件:
```java
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
Toast.makeText(context, "Boot completed", Toast.LENGTH_LONG).show();
} else if (intent.getAction().equals(Intent.ACTION_POWER_CONNECTED)) {
Toast.makeText(context, "Power connected", Toast.LENGTH_LONG).show();
} else if (intent.getAction().equals(Intent.ACTION_POWER_DISCONNECTED)) {
Toast.makeText(context, "Power disconnected", Toast.LENGTH_LONG).show();
}
}
}
```
3. 在需要发送广播的地方调用以下代码:
```java
Intent intent = new Intent("com.example.broadcast.MY_BROADCAST");
intent.putExtra("message", "Hello World");
sendBroadcast(intent);
```
4. 在需要接收广播的地方注册广播接收器:
```java
IntentFilter intentFilter = new IntentFilter("com.example.broadcast.MY_BROADCAST");
MyBroadcastReceiver myBroadcastReceiver = new MyBroadcastReceiver();
registerReceiver(myBroadcastReceiver, intentFilter);
```
注意:在不需要接收广播时,一定要记得取消注册广播接收器,否则会造成内存泄漏:
```java
unregisterReceiver(myBroadcastReceiver);
```