Android 广播接收器教程 📱
BroadcastReceiver 是 Android 中用于接收和响应系统或应用发出的广播事件的核心组件。通过它,你可以监听如网络状态变化、电池电量低、短信接收等全局事件。
基本用法 ✅
创建 BroadcastReceiver 子类
public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // 处理广播逻辑 } }
注册广播接收器
- 静态注册(在
AndroidManifest.xml
中声明)<receiver android:name=".MyReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver>
- 动态注册(在代码中通过
registerReceiver
)IntentFilter filter = new IntentFilter("com.example.MY_CUSTOM_ACTION"); MyReceiver receiver = new MyReceiver(); registerReceiver(receiver, filter);
- 静态注册(在
发送广播
Intent intent = new Intent("com.example.MY_CUSTOM_ACTION"); sendBroadcast(intent);
权限管理 🔐
- 需要监听系统广播时,需在
AndroidManifest.xml
中声明权限,例如:<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
- 自定义广播建议使用
LocalBroadcastManager
提升安全性(Android 7.0 后已弃用,改用sendBroadcast(Intent, String)
)。
使用场景 🌐
- 监听系统事件:如屏幕关闭、时间变化
- 应用内事件:如数据更新、状态切换
- 结合
JobScheduler
实现后台任务管理
注意事项 ⚠️
- 避免在
onReceive
中执行耗时操作 - 优先使用动态注册以减少资源占用
- 需处理
Context
泄漏问题(建议使用ContextWrapper
)
💡 小贴士:想了解更多 Android 组件知识?可以查看 /android_tutorials/service_tutorial 了解 Service
的使用!
如需深入理解广播机制,推荐阅读 /android_tutorials/permission_tutorial 中的权限相关章节!