Android 广播接收器教程 📱

BroadcastReceiver 是 Android 中用于接收和响应系统或应用发出的广播事件的核心组件。通过它,你可以监听如网络状态变化、电池电量低、短信接收等全局事件。

基本用法 ✅

  1. 创建 BroadcastReceiver 子类

    public class MyReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            // 处理广播逻辑
        }
    }
    
  2. 注册广播接收器

    • 静态注册(在 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);
      
  3. 发送广播

    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_Broadcast_Receiver

如需深入理解广播机制,推荐阅读 /android_tutorials/permission_tutorial 中的权限相关章节!