要创建广播接收器,首先需要创建一个继承自BroadcastReceiver类的新类,并实现onReceive()方法。这个方法将在接收到广播时被调用。以下是一个简单的例子:
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 在这里处理接收到的广播消息
String action = intent.getAction();
if (action.equals("com.example.MY_ACTION")) {
// 处理自定义广播
// 可以从Intent中获取附加的数据
String data = intent.getStringExtra("key");
// 执行相应的操作
} else if (action.equals(Intent.ACTION_BOOT_COMPLETED)) {
// 处理系统广播,比如设备启动完成
// 执行相应的操作
}
}
}
在AndroidManifest.xml文件中注册广播接收器:
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<!-- 这里可以定义你想要接收的广播类型 -->
<action android:name="com.example.MY_ACTION" />
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
注意:如果你的应用目标是 Android 8.0(API级别 26)及更高版本,你需要在代码中注册广播接收器,因为静态注册的方式在这些版本中被限制了。可以使用registerReceiver()方法进行动态注册,但要确保在不需要接收广播时取消注册。
// 在Activity或Service中动态注册
MyBroadcastReceiver receiver = new MyBroadcastReceiver();
IntentFilter filter = new IntentFilter("com.example.MY_ACTION");
registerReceiver(receiver, filter);
// 在不需要接收广播时取消注册
unregisterReceiver(receiver);
这样,当应用程序发送指定的广播或系统事件发生时,你的广播接收器就会被触发执行相应的操作。
转载请注明出处:http://www.pingtaimeng.com/article/detail/9394/Android