java如何使用广播
使用广播的基本概念
广播在Java中通常指Android平台的消息传递机制,允许应用内或应用间发送和接收系统或自定义事件。广播分为标准广播(无序)和有序广播(同步处理)。
发送广播
创建一个Intent对象并指定广播的Action字符串,通过sendBroadcast()方法发送:
Intent intent = new Intent("com.example.CUSTOM_ACTION");
intent.putExtra("data", "Hello from Broadcast");
sendBroadcast(intent);
有序广播可通过sendOrderedBroadcast()发送,允许接收者按优先级处理或中断广播。
接收广播
静态注册(在AndroidManifest.xml中声明):
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="com.example.CUSTOM_ACTION" />
</intent-filter>
</receiver>
动态注册(在代码中注册):
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String data = intent.getStringExtra("data");
Log.d("Receiver", "Received: " + data);
}
};
IntentFilter filter = new IntentFilter("com.example.CUSTOM_ACTION");
registerReceiver(receiver, filter);
注意事项
动态注册的接收器需在适当生命周期(如Activity的onResume()/onPause())中注册和注销,避免内存泄漏。Android 8.0+限制隐式广播,建议使用显式Intent或本地广播管理器。
本地广播
使用LocalBroadcastManager(已废弃,推荐替代方案):
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
替代方案为使用LiveData或RxJava等事件总线库实现组件间通信。
权限控制
发送广播时可添加权限限制:
sendBroadcast(intent, "com.example.PERMISSION");
接收方需在Manifest中声明相同权限:

<uses-permission android:name="com.example.PERMISSION" />






