在Android开发中,注册广播接收器(Broadcast Receiver)是一种常见的方式,用于接收来自系统或其他应用程序发送的广播(events)。广播可以是系统事件(如网络状态变化、电量变化等),也可以是应用程序自定义的事件。注册广播通常涉及以下几个步骤。
1. 创建广播接收器类
你需要创建一个继承自BroadcastReceiver的类,并重写onReceive()方法,这个方法会在接收到匹配的广播时被调用。
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 处理接收到的广播
}
}2. 在AndroidManifest.xml中注册广播接收器(静态注册)

你可以在<application>标签内添加<receiver>标签来注册你的广播接收器,这种方式是静态注册。
<manifest ... >
<application ... >
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<!-- 指定接收的广播类型 -->
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<!-- 可以添加更多action -->
</intent-filter>
</receiver>
</application>
</manifest>3. 在代码中动态注册广播接收器(运行时注册)
你也可以在代码中动态注册广播接收器,这种方式更加灵活,因为你可以在应用程序运行时根据需要注册或取消注册。
MyBroadcastReceiver receiver = new MyBroadcastReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction("android.net.conn.CONNECTIVITY_CHANGE"); // 添加需要监听的广播类型
registerReceiver(receiver, filter); // 注册广播接收器取消注册时,使用unregisterReceiver()方法:
unregisterReceiver(receiver); // 取消注册广播接收器
注意事项:
在静态注册时,请确保你的应用有权限接收特定的广播,某些系统广播可能需要特定的权限。
动态注册的广播在应用程序不再运行时(比如被系统杀死)会被自动取消注册,静态注册的广播则会长久存在,直到被明确取消注册或应用被卸载。
在处理接收到的广播时,避免执行耗时操作或阻塞主线程,以免影响用户体验,可以考虑使用异步任务或后台线程来处理这些操作。









