Android广播接收器(Broadcast Receiver)是一种组件,用于响应系统广播消息或应用程序内部的广播消息。广播是一种在应用程序之间或系统组件之间传递信息的方式,可以是系统级别的,也可以是应用程序内的。

要创建广播接收器,首先需要创建一个继承自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