BroadcastReceiver的8大常用系统广播

分类: 365bet官网是什么 时间: 2025-12-12 20:01:11 作者: admin 阅读: 796
BroadcastReceiver的8大常用系统广播

在 Android 开发中,BroadcastReceiver 用于监听系统和应用发出的广播事件。以下是 8 个常用的系统广播及其典型用途和注意事项:

1. 开机完成广播

Action: ACTION_BOOT_COMPLETED

用途:监听设备启动完成事件,常用于初始化后台服务或定时任务。

注意:

需声明权限 Android 10+ 限制后台启动 Activity,需谨慎处理逻辑。

示例注册方式(静态注册):

2. 网络状态变化广播

Action: ACTION_CONNECTIVITY_CHANGE

用途:监听网络连接状态(如 Wi-Fi/移动数据切换)。

注意:

Android 7.0+ 要求动态注册,无法静态接收此广播。建议使用 ConnectivityManager 主动查询网络状态。

动态注册示例:

IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);

registerReceiver(networkReceiver, filter);

3. 电量变化广播

Action: ACTION_BATTERY_CHANGED

用途:监听电量变化(如低电量警告、充电状态)。

注意:

只能通过动态注册接收(系统不允静态注册)。通过 Intent 携带电量百分比、充电状态等信息。

示例代码:

IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);

registerReceiver(batteryReceiver, filter);

4. 屏幕状态广播

Actions:

ACTION_SCREEN_ON(屏幕点亮)ACTION_SCREEN_OFF(屏幕关闭)

用途:优化资源使用(如屏幕关闭时暂停动画)。

注意:必须动态注册,静态注册无效。

5. 时区变化广播

Action: ACTION_TIMEZONE_CHANGED

用途:处理国际化时间相关的逻辑(如日历应用)。

注意:可能需要重新初始化时间相关模块。

6. 短信接收广播

Action: ACTION_SMS_RECEIVED

用途:拦截或处理短信(如验证码自动填充)。

注意:

需权限 Android 8.0+ 限制隐式广播,建议动态注册。

7. 应用安装/卸载广播

Actions:

ACTION_PACKAGE_ADDED(应用安装)ACTION_PACKAGE_REMOVED(应用卸载)

用途:监控应用安装状态(如安全类应用)。

注意:需添加 到 IntentFilter。

静态注册示例:

8. 耳机插拔广播

Action: ACTION_HEADSET_PLUG

用途:处理耳机插拔事件(如音乐播放器暂停/恢复)。

注意:只能动态注册。

示例代码:

IntentFilter filter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);

registerReceiver(headsetReceiver, filter);

注意事项

动态注册的 Receiver 需在 onDestroy() 中及时注销,避免内存泄漏。Android 8.0+ 对隐式广播(Implicit Broadcast)限制严格,部分系统广播需改用动态注册。后台执行限制:避免在 Receiver 中执行耗时操作,建议使用 JobScheduler 或 WorkManager。

相关推荐